laravel5.2での2ステップログインの作り方

先日ポストしたマルチ認証の記事のコメント欄で、
2ステップログインの作り方を聞かれたので、やってみました。

今回作る2ステップログインは、以下のような形です。

非ログイン状態 → Userログイン → Adminログイン
各状況に応じて、見れるページが増えていく。

■github – my-blog-161117__2step-login
https://github.com/dog-ears/my-blog-161117__2step-login

(1)先日の投稿通り、マルチ認証を作ります。

■laravel 5.2で実装する、マルチ認証の作り方
http://dog-ears.net/laravel/160523/

(2)ルートを調整します。

#/app/Http/routes.php
https://github.com/dog-ears/my-blog-161117__2step-login/blob/master/app/Http/routes.php

Route::group(['middleware' => 'auth'], function () {
...
});

上記記述で、adminルートをくるんでいます。
これにより、adminページを見ようとしたとき、Userとしてログインしていないと、まず最初にUserログインを要求されます。

(3)userをログアウトすると、adminもログアウトするようにします。

■github – logout as admin when logout as user
https://github.com/dog-ears/my-blog-161117__2step-login/commit/95f97aa9b08ce2ee5b186c12bc4a4e9d445c3942

#app/Http/routes.php

$this->get('logout', 'Auth\AuthController@logoutAll');

/logoutに移動した時、logoutAllメソッドを実行するようにルートを修正します。

#app/Http/Controllers/Auth/AuthController.php

$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
↓
$this->middleware($this->guestMiddleware(), ['except' => 'logoutAll']);

ミドルウェア除外指定をlogoutからlogoutAllに変更
あとは、logoutAllメソッドを追加しています。

以上、2ステップログインの作り方でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です