English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
서론
이 문서는 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(이메일을 보내는 경우, #을 @으로 변경하십시오. 신고를 하시고 관련 증거를 제공하시면, 해당 내용이 확인되면 즉시 해당 내용을 삭제하겠습니다.