English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Laravel 5.5내장된 Auth 모듈을 사용하여 전后台 로그인 설명

서론

이 문서는 Laravel에 대해 주로 설명합니다. 5.5내장된 Auth 모듈을 통해 전후台的 로그인 관련 내용을 구현한 것입니다. Auth 모듈에 대한 더 많은 내용은 다음 기사를 참조하세요: https://ko.oldtoolbag.com/article/121401.htm

많은 말은 하지 않고, 자세한 소개를 함께 보겠습니다.

메서드는 다음과 같습니다:

단계1:Auth 생성

프로젝트가 완료된 후, 내장 Auth 컴포넌트 생성:

php artisan make:auth

단계2:가드 추가

config\auth.php 열고, 전후台的 사용자 전환을 편리하게 하기 위해 프로젝트가 공유하는 Users 테이블 사용

'guards' => [
 //...
 'admin' => [
  'driver' => 'session',
  'provider' => 'users',
 ],
 //...
 ],

단계3:기본 클래스 구현

class AdminController extends BaseController
{
 use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
 public function __construct()
 {
 $this->middleware('auth:admin');
 }
}

단계4:백엔드 로그인 컨트롤러 구현

appcontrollersAdminLoginController.php 새로 만들기

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
class LoginController extends Controller
{
 /*
 |--------------------------------------------------------------------------
 | Login Controller
 |--------------------------------------------------------------------------
 |
 | 이 컨트롤러는 애플리케이션에서 사용자 인증을 처리하며
 | 사용자를 홈 스크린으로 리디렉션합니다. 컨트롤러는 트레이트를 사용합니다
 | 애플리케이션에 기능을 편리하게 제공하기 위해.
 |
 */
 use AuthenticatesUsers;
 /**
 * 로그인 후 사용자를 어디로 리디렉션할지.
 *
 * @var string
 */
 protected $redirectTo = '/admin';
 /**
 * 새로운 컨트롤러 인스턴스 생성
 *
 * @return void
 */
 public function __construct()
 {
 $this->middleware('guest:admin')->except('logout');
 }
 /**
 * 로그인 페이지 재구현
 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 */
 public function showLoginForm()
 {
 return view('backend.login');
 }
 /**
 * 로그아웃 메서드 재구현
 * @param Request $request
 * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
 */
 public function logout(Request $request)
 {
 $this->guard();->logout();
 $request->session();->flush();
 $request->session();->regenerate();
 return redirect('/admin/login');
 }
 /**
 * guard 인증 재구현
 * @return mixed
 */
 protected function guard()
 {
 return Auth::guard('admin');
 }
}

단계5:로그인 후 다른 경로로 이동 구현

app\Middleware\RedirectIfAuthenticated.php

public function handle($request, Closure $next, $guard = null)
{
 if (Auth::guard($guard)->check()) {
  $path = $guard ? '/admin' : '/home';
  return redirect($path);
 }
 return $next($request);
}

단계6:인증되지 않음으로 인해 다른 로그인 페이지로 이동 구현

app\Exceptions\Handler.php

/**
 * 인증되지 않은 사용자를 해당 로그인 페이지로 이동하도록 재구현
 * @param \Illuminate\Http\Request $request
 * @param AuthenticationException $exception
 * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
 */
 protected function unauthenticated($request, AuthenticationException $exception)
 {
 if($request->expectsJson()){
  return response()->json(['message' => $exception->getMessage()], 401);
 }else{
  return in_array('admin', $exception->guards()) ? return redirect()->guest('/admin/login') : redirect()->guest('login');
 }
 }

완료

결론

이것이 이 문서의 모든 내용입니다. 이 문서의 내용이 여러분의 학습이나 업무에 도움이 되길 바랍니다. 의문이 있으시면 댓글을 통해 교류해 주시기 바랍니다. 감사합니다.呐喊 교본에 대한 여러분의 지지에 감사합니다.

선언: 본 문서의 내용은 인터넷에서 가져왔으며, 원작자의 소유물입니다. 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 이 웹사이트는 소유권을 가지지 않으며, 인공적인 편집 처리를 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권에 문제가 있는 내용을 발견하시면, 이메일을 notice#w로 보내 주시기 바랍니다.3codebox.com(이메일을 보내는 경우, #을 @으로 변경하십시오. 신고를 하시고 관련 증거를 제공하시면, 해당 내용이 확인되면 즉시 해당 내용을 삭제하겠습니다.

추천해드립니다