Laravelでアクセス制限をかけて管理者ユーザーしか見れないようにする

Laravelセキュリティ

Laravelではユーザーに役割を設定し、管理者ユーザーしか見れないページを作成できます。

ミドルウェアを使って、管理者ユーザー以外がアクセスすると【404 not found】と出るようにする手順を解説していきます。

じゅんこ
じゅんこ

「ミドルウェアってなに?」と思ったら、まずはこちらのマンガを見てみてくださいね。

Laravelでアクセス制限をかけて管理者ユーザーしか見れないようにする

管理者(アドミン)ユーザー権限を持つ人のみ、特定のルート設定にアクセスできるようにしていきます。

手順は次のとおり。

  1. ユーザーに役割をふる
  2. ミドルウェアを作成し、kernel.phpに登録
  3. ミドルウェアを設定
  4. ルート設定を更新

ユーザーに役割をふる

まずはRole(役割)モデルを作っておきます。

その後、UserとRoleに belongsToManyでリレーションを作り、中間テーブル(Pivot)を作っておきます。

方法はこちらで解説しています。

Roleテーブルを作成したら、Role ID=1がアドミンとなるように設定しておきましょう。

【Roleテーブル設定例】

中間テーブルを使って、既存のUserに役割もふっておきます。

ミドルウェアを作成し、kernel.phpに登録

次に、下記のコマンドを入力して AdminMiddlewareを作成します。

作成後、app/Httpにある Kerne.php ファイルにミドルウェアを登録しておきましょう。

じゅんこ
じゅんこ

この手順、結構忘れがち^^;

わたしと同じうっかりさんは、気を付けてくださいね。

ミドルウェアを設定

app/Http/Middlewareの中の、今作成したAdminMiddleware.phpを開きます。

上部に、下記のuse宣言を入れておきます。

public function には、次のように入れておきましょう。

ログインしたユーザーがアドミンでなければ、404ページが返ってきます。

ルート設定を更新

アドミンユーザー以外見られたくないルート設定に、今作成したミドルウェアをつけておきます。

次のようにすると、複数のルート設定をいれておけます。

テスト

最後にテストです。

アドミン権限のないユーザーとして、先ほどミドルウェアをかけたページにアクセスしてみてください。

次のようなページがでれば成功。

 

じゅんこ
じゅんこ

アクセス制限は他にも色々な方法でかけられます。

もしこの方法ではイマイチと感じたら、関連記事も見てみてください。

 

Laravelセキュリティ

【Laravelの教科書・無料プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック
【LaravelでWebアプリ開発します】

「会員制サイトを作ってほしい」「開発の時間がないから頼みたい!」

こんなご要望承り中。オンラインミーティングでも、ご相談承ります。

サンプルやお見積もり目安を見てみる

Twitter始めました。
40代からプログラミング!

コメント

タイトルとURLをコピーしました