23,117viewsこんにちは、急に寒くなって驚きを隠し切れない奥田です。前回はLaravel5開発環境の構築について書きました。Homesteadを使ってLaravel5開発環境を構築するなので今回はLaravelの標準機能として備わっている認証機能を実際に触ってみて体系的にLaravel5.1の動きを見ていきたいと思います。参考にさせていただいた記事DBマイグレーションとコンフィグレーションLaravelにはartisan(アルチザン)というCLIが用意されていて、データーベーステーブルの作成や、モデル・コントローラーの作成がコマンドラインから行えます。CakePHPでいうBakeみたいな感じですね。前回作成したhomesteadにssh接続し、プロジェクトディレクトリに移動します。~/Code/laravelそして以下のコマンドを実行するとartisanがLaravelにはじめから入っているmigrationファイルを実行し、ユーザー認証用のテーブルが作成されます。ちなみにこれらのファイルはdatabase/migrationsディレクトリに存在しています。2014_10_12_100000_create_password_resets_tableデータベースについてはHomesteadの場合、自動的にhomesteadというデータベースが作成されているのですが、本番環境などではデータベースを用意し、指定しなければなりません。いう場合本番環境と開発環境で別の設定になります。それら設定は.envというファイルに記述されているので、このファイルをそれぞれ用意しておけば良いようです。DB_HOST=localhostDB_DATABASE=homesteadDB_USERNAME=homesteadDB_PASSWORD=secretその下にメールの設定を記述する箇所があるのでパスワード再発行用のメールを送信する必要があるためここを書き換えておきます。今回はGmailを利用してみようと思います。※お持ちのメールアカウントに書き換えてください。MAIL_DRIVER=smtpMAIL_HOST=smtp.gmail.comMAIL_PORT=587MAIL_USERNAME=メールアドレスMAIL_PASSWORD=パスワードMAIL_ENCRYPTION=tlsMAIL_FROM_ADDRESS=FROMアドレスさらに、メール送信時にfromアドレスがないとエラーが出るのでconfig/mail.phpを編集します。],次に、Laravel5からFORMとHTMLを生成するヘルパークラスが分離されたそうなので使えるようにインストールします。(公式ドキュメントではヘルパーを使わずに記述されています。"illuminate/html:5.0.*"次にこれらを使えるようにconfig/app.phpを編集します。Illuminate\Html\HtmlFacade::class,//追記],これで設定は完了です。多くのフレームワークで肝となるのがルーティングでしょう。Laravelの場合はapp/routes.phpに記述していきます。はじめは以下のように書かれています。view('welcome');});これは’/’にアクセスされた際、welcomeというビューを表示するという設定です。welcomeビューはresources/views/welcome.blade.phpのことを指しています。Laravelの初期画面です。第二引数は関数で指定していますが、文字列や配列で指定することもできます。文字列で指定する場合はコントローラー名@メソッド名(アクション名)という形にします。今回は公式ドキュメント通りのルーティングで、すでに用意されているコントローラーとメソッドを指定します。'Auth\AuthController@postRegister');次に管理画面用のテンプレートビューを作成します。今回はBootstrap3を使用します。resources/views/auth.blade.phpを作成し、以下のように記述します。LaravelはBladeというテンプレートエンジンを採用しています。詳しくはこちらをご覧ください。src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script></body></html>Header部分を別のビューに切り分けます。Auth::guest()とAuth::check()でログインしているかいないかをBooleanで返してくれます。-->これでテンプレートの準備は完了です。ビューの作成では各ページのビューを作っていきます。ログインできませんでした。登録できませんでした。アクセスするとユーザー登録画面が表示されると思います。ログイン後の画面の作成ただ、このままだとログイン後のページに遷移した際、エラー画面となってしまいます。LaravelのAuthではログイン後/homeにリダイレクトする設定になっているのでそのまま/homeのルーティングを作成します。routes.phpに以下を追記します。'DashboardController@index']);‘middleware’=>’auth’とは認証が必要なページに認証済みかのチェックを行うということです。非認証だとこのページにアクセスできません。usesはどのコントローラーを使用するかを指定できます。上記に書いたようにDashboardContoroller.phpのindexアクションを作成します。artisanのmake:controllerコマンドでcontrollerを作成できます。successfully.app/Http/ControllersにDashboardContoroller.phpが作成されているのでそれを開き、indexメソッド内に以下を追記しビューを指定します。}resources/views/auth/index.blade.phpを作成します。</div>@endsectionログインユーザーの情報はAuth::user()で取得できます。ダッシュボードの手順を踏んでみます。以下のように表示されれば成功です。最後にパスワード再設定用のビューを作成します。これもAuthは用意してくれています。ルーティングは以下のようにしてください。'Auth\PasswordController@postReset');流れはよくあるTokenを使ったものです。メールアドレスを入力し、Tokenが付いたURLが入力したメールアドレスに送られてきます。そこにアクセスし、パスワードを入力すればリセットの完了です。ビューを作成していきます。パスワードをリセットできませんでした。</div>@endsectionメールのテンプレートが必要なので作成します。resources/emails/にpassword.blade.phpを作成します。--}}パスワードをリセットするためにリンクをクリックしてください。}}これで認証の一通りの流れはできたのではないでしょうか?Laravelはロジックをほぼ書くことなく認証機能を実装することができてしまいます。ソーシャル認証なども用意されています。artisanの書き方に慣れるためにもぜひお試しください。API廃止に対応する】PHPとJavascriptでFeedを取得する方法。menuWorksBlogInformation。