Laravel Auth機能の処理の流れ
1、ログインしていないといけないページに直打ち等で行こうとしたときには「/login」に飛ばす処理
まずはデフォルトで生成されているhomeコントローラー
class HomeController extends Controller
{
//↓でコンストラクタとしてミドルウェアauthを指定している
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('home');
}
}
上記の記述から、authミドルウエア自体はapp\Http\Kernel.php内で以下のように設定されている
protected $routeMiddleware = [
//今回はこれ↓↓をみる
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];
そして最後に\App\Http\Middleware\Authenticate::classを確認すると
public function handle($request, Closure $next, $guard = null)
{
//もし、ログインしてなかったら
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
// /loginにリダイレクト
return redirect()->guest('login');
}
}
return $next($request);
}
以上のようにな処理の流れになっている
※ここで登場するguard、guestについて
guard・・・各リクエストごとにどのようにユーザーを認証するかを定義している
guest・・・ユーザーがログインしていないことを確認できる
例)Auth::guest() でログインしていなかったらtrueを返す(ちなみにguestをcheckにすると逆の動きをし、ログインしていればtrueを返す動きになる)
この記事が気に入ったらサポートをしてみませんか?