Laravelは、ユーザーがあなたがルートにアクセスする前にパスワードを再入力するにはログインしている尋ねることを可能にする新しいパスワードの確認機能を、追加V6.2のバージョンを、リリースしました。
あなたは機密性の高い操作を実行すると、この機能は、GitHubの確認ダイアログに似ています。Laravelでは、簡単そうのは、それがどのように動作するか、あなたがよりよく理解できるように、新機能を試してみましょう、それを設定することができます。
設定
まず、この新機能をより直感的に理解するために、我々は新しいLaravelアプリケーションを作成します。
laravel新しい確認アプリの CD確認アプリの 作曲はlaravel / UI --dev必要
あなたは、メイクを知っている:AUTHコマンドはLaravel 6削除され、同じ機能は、UIは、公式拡張パックは、私たちは新しいコマンドに関連付けられているユーザ認証用のコードを生成することができます/ laravelに移行しています:
1 PHP業者UI VUE - AUTH 2 糸インストール 3糸DEVを
次に、我々は(もちろん、あなたは彼らが望むのデータベースを使用するように選択することができます)SQLiteのデータベースを設定します。
タッチデータベース/ database.sqlite
私たちは、sqliteのドライバのデフォルトの設定ファイルを使用する際に必要な、しかし、あなたはまだ、データベース接続と正しいパスのことを確認するために、更新.envファイルに必要Laravelを作成しました:
= DB_CONNECTION のsqlite #... #sqliteのドライバのデフォルトのパスを使用する #db_database = Laravel
次に、の移行を実行し、テストユーザーを作成してみましょう:
PHP職人移行
私たちは、テストユーザーコンソール工場()メソッドを作成することができます。
1 PHP職人いじくり 2 >>> $ユーザー =工場(APP \ユーザー:: クラス) - > 作成([ 3 ... 'パスワード' => bcryptの( '秘密')、 4 ... 'メール' => '[email protected]' 5 ...]);
書き込みコントローラ。
あなたは、ユーザーがそのようなアドオンとしてSSHキー管理操作の前に再認証にパスワードを表示するとします。私たちは、設定ウィンドウで再入力パスワード(デフォルトは3時間です)に、ユーザが欲しいです。
我々は、我々は新しいpassword.confirmミドルウェアを必要とする、ユーザーは、新しいキーを作成するために行くことができますルーティングでルートを作成/フェイク/設定/ SSHを作成します。
PHPの職人メイク:コントローラ設定/ SSHController
次に、)(コントローラにメソッドを作成します。
1つの 名前空間のApp \のHttp \コントローラ\セッティング。 2 3 使用のApp \のHttp \コントローラ\コントローラ。 4 使用を照らし\のHttp \要求。 5つの 6 クラスが SSHControllerが延びてコントローラ 7 { 8 パブリック 関数)(作成 9 { 10 リターンビューを( '秘密' )。 11 } 12 }
私たちは、秘密のテンプレートスタブ、およびリソース/ビュー/ secret.blade.php間のルートディレクトリのパスビューの場所にそれをします。
1つの @は延び( 'layouts.app' ) 2 @section( 'コンテンツ' ) 3 <DIV クラス = "コンテナ"> 4 <DIV クラス = "行正当化コンテンツセンター"> 5 <DIV クラス = "COL-MDを-8" > 6 <H1>の追加新しい SSH キー </ H1> 7 <p>このページは、パスワードのみの確認後に表示されます。</ p> 8 </ DIV> 9 </ divの> 10 </ DIV> 11 @endsection
ときにコードコード、あなたがファイルをコピーする得ることができ、プロジェクトへのファイルのauth /パスワード/ confirm.blade.phpをコピーしてください.. UI / confirm.stubこのファイルやアドオンをコピー次の項目へのパス:
リソース/ビュー/認証/パスワード/ confirm.blade.php
次に、我々は、私は、このミドルウェアを言う必要があるのルート/ web.phpファイルの最後に、ルートを定義する必要があります。
1つのルート::名前空間( '設定' ) 2 - >ミドルウェア([ 'AUTH' ]) 3 - >グループ(関数(){ 4ルート::( '/設定/ SSH /作成'、 'SSHController @作成'を取得します) - >ミドルウェア( 'password.confirm' ); 5 })。
注:、我々は内部のコントローラの名前空間の設定を作成する通常、あなたはこのデモで一緒に認証ミドルウェアによってすべてが集約ルーティング認証を必要とする置くことができます。
ログインしたら、それを使用すると、あなたは/ホームにリダイレクトされます。そこにナビゲート/設定/ SSH /作成し、パスワードを入力するように求められます。
チュートリアルフォロー場合は、フォームが送信され、シークレットを入力し、[ビューを作成入力します。このページを更新するためにプロンプトを表示せず、パスワードを確認した後に。
あなたのSSHController :: create()メソッドに追加する新しいDDD()ヘルパー関数、メソッドは、ときに次のプロンプト値がセッションにauth.password_confirmed_at決定します。
1つの パブリック 関数は、()を作成する 2 { 3 DDD(セッション( 'AUTHを' )); 4 リターン・ビュー(「秘密」)。 5 }
これは、パスワードを確認するための最後の時間であること。3時間以上、無重複デフォルトのアラートユーザ認証パスワードを再度、もちろん、あなたが設定項目をカスタマイズすることができます(CIは、コンフィグ(「auth.password_timeout」)を変更することで、LaravelのV6.2.0バージョンのconfig / AUTHを定義しました。 PHPの設定ファイル)。
もっと読む
非常ドリスVintsは私たちにLaravel 6.2のこのバージョンに含まれて素晴らしい新機能を持っていただきありがとうございます、あなたは、実装の詳細はミドルウェアについてもっと学ぶために要求#5129を引き出すことができます。