if (Auth::check()){ // The user is logged in...}
Laravelパーミッションコントロールは認証を組織します
ユーザー認証
1. ユーザー認証が付属しています
はじめに
Laravel を使用すると、認証メカニズムを非常に簡単に実装できます。実際、ほとんどすべての設定はデフォルトですでに行われています。認証に関連する構成ファイルは config/auth.php に配置されており、これらのファイルには、各オプションに対応する認証サービスを説明する適切なコメントも含まれています。Laravel には、デフォルトでアプリフォルダー内のデフォルトの Eloquent 認証ドライバーを使用する AppUser モデルが含まれています。
注: この認証モデルのデータベース構造を設計する場合、パスワード フィールドの幅は少なくとも 60 文字である必要があります。繰り返しますが、開始する前に、ユーザー (または他の同義語) データベース テーブルに、長さ 100 の文字列で null を受け入れることができる remember_token というフィールドが含まれていることを確認してください。このフィールドは、「remember me」セッション トークンを保存するために使用されます。これは、移行ファイルの $table-rememberToken(); メソッドを使用して行うこともできます。 もちろん、これらのフィールドはLaravel 5に付属する移行ですでに設定されています。
認証
Laravel には認証関連のコントローラーが 2 つプリセットされています。 AuthController は新規ユーザーの登録と「ログイン」を処理し、PasswordController はすでに登録されているユーザーのパスワードのリセットを支援します。
各コントローラーは、特性を使用して必要なメソッドを導入します。ほとんどのアプリケーションでは、これらのコントローラーを変更する必要はありません。これらのコントローラーで使用されるビューは、resources/views/auth ディレクトリに配置されます。これらのビューは必要に応じて変更できます。
テーブル構造
Laravel 独自の認証には、ユーザー登録、ログイン、パスワードのリセットが含まれます。また、これらの機能に必要なデータ構造も含まれており、以下の場所にあります。 データベースの移行 データベースを設定した後、すべての移行を実行します :
php artisan migrate
ユーザー登録
アプリケーションが新しいユーザーを登録するときに使用されるフォーム フィールドを変更するには、AppServicesRegistrar クラスを変更します。このクラスは、アプリケーションの新しいユーザーの認証と作成を担当します。レジストラーの validator メソッドには新規ユーザーの検証ルールが含まれており、レジストラーの create メソッドはデータベースに新しいユーザー レコードを作成する役割を果たします。これらのメソッドは自由に変更できます。 Registrar メソッドは、AuthenticatesAndRegistersUsers トレイトの AuthController から呼び出されます。
ソースコードをご覧ください:
class Registrar implements RegistrarContract { /** * Get a validator for an incoming registration request. * * @param array $data * @return \Illuminate\Contracts\Validation\Validator */ public function validator(array $data) { return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:6', ]); } /** * Create a new user instance after a valid registration. * * @param array $data * @return User */ public function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); }}
デフォルトの AuthController を使用したくない場合は、Laravel の認証クラスを直接使用してユーザー認証を管理する必要があります。心配しないでください、それも簡単です!まず、attempt メソッドを見てみましょう:
<?php namespace App\Http\Controllers; use Auth; use Illuminate\Routing\Controller; class AuthController extends Controller { /** * Handle an authentication attempt. * * @return Response */ public function authenticate() { if (Auth::attempt(['email' => $email, 'password' => $password])) { return redirect()->intended('dashboard'); } } }
認証が成功すると、attempt は true を返します。それ以外の場合は false を返します。
** 注: 上記の例では、電子メール フィールドを使用する必要はありません。これは単なる例です。データテーブルの「ユーザー名」に対応する任意のキーを使用する必要があります。
意図されたメソッドは、ユーザーがアクセスしようとしている URL にリダイレクトされ、その値は認証フィルタリングの前に保存されます。リダイレクトされた URL が使用できなくなるのを防ぐために、デフォルトの URI をこのメソッドに渡すこともできます。
特定の条件でユーザーを検証する
認証プロセス中に、追加の認証条件を追加することができます:
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])){ // The user is active, not suspended, and exists.}
ユーザーを認証し、彼を「記憶」します
アプリケーションに「私を記憶」機能を提供したい場合は、試行メソッドの 2 番目のパラメーターとしてブール値を渡すことができます。これにより、ユーザーの認証は次のようになります。 ID は保持されます (または手動でログアウトするまで)。もちろん、ユーザー データ テーブルには、「remember me」識別子を格納するための文字列型の remember_token 列が含まれている必要があります。
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)){ // The user is being remembered...}
if (Auth::viaRemember()){ //}
if (Auth::check()){ // The user is logged in...}
ログイン後にコピー
4. ログインせずに検証のみを行う if (Auth::check()){ // The user is logged in...}
validate メソッドを使用すると、実際にアプリケーションにログインせずにユーザーの認証情報を検証できます
if (Auth::validate($credentials)){ //}
5 . 単一のリクエストでユーザーをログインします
once メソッドを使用して、単一のリクエストでユーザーをログインすることもできます。セッションや Cookie は生成されません:
if (Auth::once($credentials)){ //}
6. 用户实例登录
假如你需要将一个已经存在的用户实例登陆应用,你可以调用 login 方法并且传入用户实例:
Auth::login($user);
安全退出
当然,假设你使用 Laravel ?建的认证控制器,预设提供了让用户登出的方法。
Auth::logout();
取得通过验证的用户实例
1. 从 Auth facade 取得
<?php namespace App\Http\Controllers; use Illuminate\Routing\Controller; class ProfileController extends Controller { /** * Update the user's profile. * * @return Response */ public function updateProfile() { if (Auth::user()) { // Auth::user() returns an instance of the authenticated user... } } }
2. Illuminate\Http\Request 实例取得
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Routing\Controller; class ProfileController extends Controller { /** * Update the user's profile. * * @return Response */ public function updateProfile(Request $request) { if ($request->user()) { // $request->user() returns an instance of the authenticated user... } } }
3.使用 Illuminate\Contracts\Auth\Authenticatable contract 类型提示
<?php namespace App\Http\Controllers;use Illuminate\Routing\Controller;use Illuminate\Contracts\Auth\Authenticatable;class ProfileController extends Controller { /** * Update the user's profile. * * @return Response */ public function updateProfile(Authenticatable $user) { // $user is an instance of the authenticated user... }}
参考地址:http://laravel-china.org/docs/5.0/authentication

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
