認証を行ってみる!Laravelでauthを使う方法【初心者向け】
初心者向けにLaravelでauthを使う方法について解説しています。authはユーザー登録やログイン機能を実装する上で必要な認証の処理です。実際に認証を行うプログラムを説明しているので、書きながら理解していきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Laravelでauthを使う方法について解説します。
ユーザー登録やログイン関係の実装において必要な処理なので、ぜひ書き方を理解しておきましょう。
そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプPHP/Laravel講座の内容をもとに紹介しています。
今回は、Laravelに関する内容だね!
どういう内容でしょうか?
Laravelでauthを使う方法について詳しく説明していくね!
お願いします!
authとは
一般的には、認証(Ahthentication)や認可(Ahthorization)のことを指します。
認証とは、簡単に言うとユーザー登録やログインのことです。認可とは、特定の条件のユーザーなどに権限を与えることです。
Laravelのプロジェクトにはauthミドルウェアが最初から組み込まれています。
ルート定義やコントローラのコンストラクタでauthミドルウェアを使うと、特定のルートやアクションを、認証済みユーザーだけがアクセスできるよう保護することができます。
Laravelの事前の設定
例としてblogというLaravelプロジェクトを作成します。
ターミナルでComposerのcreate-projectコマンドを実行します。作成されたらそのディレクトリに移動します。
composer create-project --prefer-dist laravel/laravel blog "5.5.*" cd blog/
データベースはSQLiteを使ってみます。ターミナルで以下のように空のデータベースファイルを作成します。
touch database/database.sqlite
作成したデータベースへの接続情報を、.envファイルで設定します。
DB_CONNECTION=sqlite DB_DATABASE=作成したデータベースファイルの絶対パス
ターミナルでLaravelのartisanコマンドを実行して、認証のためのルート定義、コントローラ、ビューの雛形コードを自動生成します。
php artisan make:auth
ターミナルでLaravelのartisanコマンドを実行して、ローカル開発用の組込みサーバーを起動します。
php artisan serve
ブラウザで http://localhost:8000/ にアクセスして、トップページが表示されることを確認しておきましょう。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
認証用のデータベースの設定
usersテーブル、password_resetsテーブルを作成するマイグレーションファイルが、プロジェクトの作成時に生成されています。
ターミナルでLaravelのartisanコマンドを実行して、マイグレートします。
php artisan migrate
実際にLaravelのauthで認証を行ってみよう
先ほど、認証のためのルート定義、コントローラ、ビューの雛形コードを自動生成しました。
app/Http/Controllers/HomeController.phpの中でauthミドルウェアが既に使われています。
public function __construct() { $this->middleware('auth'); }
この場合、このコントローラ内の全アクションを、認証済みユーザーだけがアクセスできるよう保護することになります。
HomeContollerには、homeビューを表示するindexアクションが既にありますので、そのアクションが保護されることを確認してみます。
routes/web.phpでこのルートを確認すると、homeというルート名が付けられています。
Route::get('/home', 'HomeController@index')->name('home');
ターミナルでLaravelのartisanコマンドを実行して、このルートを確認してみます。
php artisan route:list —name=home +--------+----------+------+------+-------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+------+------+-------------------------------------------+------------+ | | GET|HEAD | home | home | AppHttpControllersHomeController@index | web,auth | +--------+----------+------+------+-------------------------------------------+------------+
Middlwareの列にauthと書かれており、このルートにauthミドルウェアが使われることが確認できます。
実際にブラウザで「http://localhost:8000/home」にアクセスしてみましょう。
未認証のユーザーがアクセスすると、homeビューは表示されず、ログインページにリダイレクトされることが確認できます。
関連記事
この記事を監修してくれた方
杉本 隆也(すぎもとたかや) WebアプリやiOSアプリの受託開発をしながら、 開発実績: マッチングサービス、カスタマーサービス、決済ツール、SNSアプリ、音遊びアプリなど。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもPHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できるオンラインブートキャンプPHP/Laravel講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。