設定Laravelは認証をとてもシンプルに実現する目的を持っています。実際、最初から全てが設定済みです。認証の設定ファイルはapp/config/auth.phpで、認証機能の動作を調整するため、読みやすいコメントをつけた多くのオプションで構成されています。LaravelはEloquent認証ドライバーでデフォルトとして使用されるUserモデルをapp/modelsディレクトリーに用意してあります。このモデルのスキーマを作成する場合、パスワードフィールドは最低60文字必要であることを覚えておいてください。アプリケーションでEloquentを使用しないのであれば、database認証ドライバーでクエリービルダーを使ってください。認証を使い始める前に、users(もしくは同様の)テーブルにNULLを許す、100文字のremember_tokenカラムを確実に用意してください。me"(持続的)セッションのトークンを保存するために使用されます。マイグレーション時に、$table->rememberToken();を使用すれば作成されます。パスワードの保存LaravelのHashクラスは安全なBcryptハッシュを提供しています。Hash::make(&#39;secret&#39;);}ユーザー認証あるユーザーをアプリケーションにログインさせる場合は、Auth::attemptメソッドを使います。Redirect::intended(&#39;dashboard&#39;);}emailが必須のオプションでないことに注意してください。例を示すために使っているだけです。データベースの中にあるどんなカラム名でも"username"に該当するものを使用できます。Redirect::intended関数は認証フィルターでキャッチされる前にアクセスしてきた、前のURLへユーザーをリダイレクトさせます。このメソッドにはフォールバックURIを指定機で、リダイレクト先へ転送できない場合に利用されます。attemptメソッドが呼び出された時にauth.attemptイベントが発行されます。同様に、認証に成功した場合はauth.loginイベントが発行されます。ユーザーが認証されているか判定するユーザーが既にアプリケーションへログインしているかをチェックするには、checkメソッドを使います。me"機能を提供したい場合、attemptメソッドの第2引数にtrueを渡す必要があります。それにより無期限に(もしくは手動でログアウトされるまで)認証が維持されます。me"トークンを保存するために使用する、文字列のremember_tokenカラムを用意しておく必要があります。このユーザーは覚えられた...}注意:attemptメソッドがtrueを返す場合、そのユーザーはアプリケーションにログイン中だと考えられます。me"(ログインしたままにする)クッキーを使用して認証されているのかを判定できます。//}条件付きのユーザー認証を行う認証のクエリーに条件を追加することも可能です。Fixation攻撃に対抗するため、認証後はセッションIDが自動的に再生成されます。ログインしたユーザーにアクセスする一度ユーザーが認証されると、Userモデル/レコードにアクセスできます。Auth::user()-&gt;email;認証済みのユーザーのIDを取得するには、idメソッドを使用します。Auth::id();アプリケーションにユーザーをIDでログインさせたい時は、loginUsingIdメソッドを使用してください。Auth::loginUsingId(1);ログインしないで認証内容をチェックするvalidateメソッドでアプリケーションへ実際にログインさせずに、認証内容が正しいかをチェックできます。//}そのセッションの間だけユーザーをログインさせるそのリクエスト一回の間だけユーザーをログインさせるonceメソッドも使用できます。これにはセッションもクッキーも使用されません。//}アプリケーションからログアウトするAuth::logout();ユーザーの手動ログイン既に存在しているユーザーをアプリケーションにログインさせる場合、そのインスタンスを指定し、loginメソッドを呼び出してください。User::find(1);Auth::login($user);これはユーザー情報をもとにログインさせるattemptと同じ状態になります。特定のルートへ認証済みのユーザーだけがアクセスできるように、ルートフィルターを使用できます。Laravelはデフォルトのauthフィルターをapp/filters.phpで定義しています。認証済みのユーザーのみ入れる...}));CSRFからの保護LaravelはCSRFからアプリケーションを簡単に守る手段を提供しています。&#39;有効なCSRFトークンです!&#39;;}));HTTP基本認証HTTP基本認証は専用の「ログイン」ページを作成しなくても手軽にユーザーを認証できる手法です。これを使用するにはauth.basicフィルターをルートに追加してください。認証済みのユーザーのみ入れる...}));デフォルトで、basicフィルターはユーザーレコードのemailカラムを認証に使用します。ユーザーの他のカラムを使用する場合は、app/filters.phpの中で、そのカラム名をbasicメソッドの最初の引数として渡してください。Auth::basic(&#39;username&#39;);});ステートレスなHTTP基本フィルターをセットするまたHTTP基本認証はセッションのユーザー識別クッキーをセットせず使用することができます。これは特にAPI認証に便利です。使用するには、onceBasicメソッドをリターンするフィルターを書いてください。FastCGIを使用している場合、デフォルトでHTTP基本認証は正しく動作しません。.htaccessファイルに以下の行を追加してください。[E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]パスワードリマインダーとリセットモデルとテーブルほとんどのWebアプリケーションはユーザーが忘れてしまったパスワードをリセットする手段を提供しています。それぞれのアプリケーションに毎回実装する代わりに、Laravelはパスワードリマインダーを送信し、パスワードをリセットする便利なメソッドを提供しています。最初にIlluminate\Auth\Reminders\RemindableInterfaceがUserモデルへ確実に実装されていることを確認してください。フレームワークに含まれるUserモデルには、このインターフェイスが最初から実装されています。インターフェイスの実装に必要なメソッドを含んでいる、Illuminate\Auth\Reminders\RemindableTraitを使用しています。RemindableTrait;}リマインダーテーブルのマイグレーションを生成する次に、パスワードリセットトークンを保存するテーブルを生成します。このテーブルのマイグレーションを生成するためには、単にArtisanコマンドのauth::remindersを実行するだけです。migrateパスワードリマインダーコントローラーこれでパスワードリマインダーコントローラーを生成する準備が整いました。Artisanコマンドを使用し、コントローラーを自動的に生成しましょう。app/controllersディレクトリー中に、RemindersController.phpを生成します。auth:reminders-controller生成されたコントローラーには、あなたが表示したパスワードリマインダーフォームを処理する、getRemindメソッドが既に用意されています。あなたが行う必要があるのは、password.remindビューを作成することだけです。このビューはemailフィールドを持つ、基本的なフォームです。フォームはRemindersController@postRemindアクションへPOSTする必要があります。シンプルなpassword.remindビューは以下のようになるでしょう。Reminder&quot;&gt;&lt;/form&gt;getRemindに加えて、生成されたコントローラーはpostRemindメソッドも持っています。これはパスワードリマインダーメールをユーザーに送信する処理を行います。このメソッドは、POST変数にemailフィールドが存在していることを期待しています。リマインダーメールがユーザーへ無事に送られれば、statusメッセージがフラッシュデーターとしてセッションに保存されます。送信に失敗すれば、errorメッセージが保存されます。postRemindコントローラーメソッドの中では、ユーザーへ送信する前に、メッセージインスタンスを更新することができます。Reminder&#39;);});ユーザーはコントローラーのgetResetメソッドへルーティングされるリンクを含んだメールを受け取ります。指定されたパスワードリマインダーを識別するために使用されるパスワードリマインダートークンも一緒に送信されてきます。アクションにはpassword.resetビューを返すように、予めコードされていますが、このビューも作成して下さい。トークンはビューに渡され、tokenという名前の隠しフォーム隠しフィールドとして設置されなくてはなりません。このtokenに加え、パスワードリセットフォームにはemailとpassword、password_confirmationフィールドが必要です。フォームはRemaindersController@postResetメソッドへPOSTで送信して下さい。シンプルなpassword.resetビューは下のようになるでしょう。Password&quot;&gt;&lt;/form&gt;最後に、postResetメソッドがストレージ上のパスワードを実際に変更する責任を負います。このコントローラーアクションの中で、Password::resetメソッドに渡されたクロージャーは、Userにpassword属性をセットし、saveメソッドを呼び出しています。このクロージャーは、UserモデルがEloquentモデルであると想定しています。アプリケーションのデータベース保管システムに適するように、必要に応じて自由に変更して下さい。パスワードがうまくリセットし終えたら、ユーザーはアプリケーションのルートへリダイレクトされます。このリダイレクトURLも自由に変更して下さい。パスワードリセットが失敗したら、ユーザーはリセットフォームへ戻るようにリダイレクトされます。errorメッセージがセッションにフラッシュデーターとして保存されます。パスワードのバリデーションデフォルトでは、Password::resetメソッドは確認領域と同一であることと、6文字以上であることを確認します。クロージャーを使うPassword::validatorメソッドで、このルールを変更できます。クロージャーの中でどんなパスワードバリデーションも実行できます。パスワードが確認フィールドと一致するかを調べる必要がないことに注意して下さい。これはフレームワークにより、自動的に調べられます。デフォルトでは、パスワードのリセットトークンは1時間で無効になります。app/config/auth.phpファイルのreminder.expireオプションにより、この時間を変更できます。PHP拡張による、強力なAES暗号化機能を提供しています。Crypt::encrypt(&#39;secret&#39;);注目:app/config/app.phpファイルのkeyオプションに16文字か24文字、32文字のランダムな文字列を確実に設定してください。しないと、暗号化された値は安全ではありません。Crypt::decrypt($encryptedValue);手法とモードを設定する暗号化に使用する手法とモードもセットできます。Crypt::setMode(&#39;ctr&#39;);Crypt::setCipher($cipher);認証ドライバーLaravelでは最初から、databaseとeloquent認証ドライバーが用意されています。他の認証ドライバーを追加するための情報は、認証の拡張に関するドキュメントをご覧ください。kawase(Translation).このバージョンのサポートは終了しています。