Laravelでパーミッション制御を段階的に実装 (2) ログインの書き換え
Jun 20, 2016 pm 12:54 PMLaravel ログインの書き換え
アクセス許可制御は、ほぼすべての成熟したシステムに不可欠な部分です。私たちが使用するアクセス許可制御方法は rbac です。このシリーズの記事では、より複雑な rbac を段階的に完成させます。許可制御。
rbac 権限制御は、各ユーザーに 1 つ以上の役割を与えるという非常に成熟した権限制御システムであり、各役割はシステムの対応するモジュールへのアクセス権を持ちます。具体的な理論的知識は紹介されていません。多くの。この権限制御システムを完成させると、一般ユーザーと管理者ユーザーを別々にデータベースに保存します。この部分は、管理者ユーザーよりも簡単になります。ログインプロセスを理解します。
ログインしていないユーザーはログイン ページにジャンプします使用する前にログインする必要がある特定の機能にアクセスする場合、ログインしているユーザーがいない場合はログイン ページに直接ジャンプする機能がよくあります。この関数は、laravel が提供するコードで非常に簡単に完了できます。
1 |
|
使用するためにログインが必要なコントローラーで認証コントローラーを呼び出すだけで、このコントローラーはログインがあるかどうかを確認します。ログインがあるかどうかを判断するためのセッション内の情報 では、「認証」ミドルウェアはどこにあるのでしょうか?
laravel のすべてのミドルウェアは app/Http/Kernel に登録されます
1 |
|
この配列のキーはミドルウェアのエイリアスで、値はミドルウェアのパスです。エイリアスを見つけることができます。 認証ミドルウェアの場合
find AppHttpMiddlewareAuthenticate
1 |
|
ハンドル メソッドは、ミドルウェアを呼び出すときに呼び出されるメソッドです。 ゲストは、ログインがあるかどうかを判断するメソッドです。つまり、ログイン ジャンプ メソッドがない場合、ジャンプ パスは上記のコードに示すように auth/login になります (このパスはルーティングで設定されており、Auth の getLogin メソッドにジャンプします)。コントローラー)
ログイン ビューを作成しますAuthController でログイン ビューを作成します
1 |
|
フォーム データ検証の実装部分は、postLogin メソッドの UserLoginRequest $req です
を作成しますlaravel が提供する phpartian make:request は、フォーム上でデータ検証を行うためのリクエストクラスです。上記のコードのように、リクエストクラス
1 |
|
1 |
|
を簡単に作成できます。ビジネスのニーズに応じて、渡されたデータをさらに処理します。
ログイン ユーザー関数を検証するコードはこのセクションです $this->auth->attempt($indentity) 検証が成功すると、戻り値が返されます。 true この関数は、laravel 独自の Auth 関数のメソッドであり、渡されたフィールドがテーブル内で照合されると、検証が成功した後にログイン情報がセッションに保存されます。 。もちろん、Auth が一致を検索するテーブルは変更できます。その変更方法は、後で管理者ユーザーのログイン機能を実装するときに説明します。
その後、以下のコードでビジネス ロジックを完成させ続けることができます。私のコードに示すように、ログイン イベントとログイン IP を記録するイベントをトリガーします。
ログイン後、自動的にログイン ページに移動します。 inすでにログインしていてログイン ページにアクセスする場合、ログインを許可するためにログイン ビューを表示する必要はありません。このパスは引き続き変更できます。
まず、Auth を見てみましょう。ログインしたかどうかはコントローラーのどこで判断されますか?
1 |
|
Except は、getLogout メソッドがこのミドルウェアの影響を受けないことを意味します。通常はログアウト メソッドです
このコントロールでは、コンストラクター メソッドがミドルウェアを呼び出して、ログインしたかどうかを判断します。 kernel.php を検索すると、このミドルウェア
が見つかります。これは AppHttpMiddlewareRedirectIfAuthenticated.php
1 |
|
上記のコードのジャンプを変更するだけです パスを転送するだけです
概要
laravel が多くのログイン関連の関数をカプセル化していることがわかります。非常に完成度が高いです。ですが、必要なビジネス ロジックに応じてログイン関連のプロセスを自由に変更することもできます。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LaravelのバックエンドでReactアプリを構築する:パート2、React
