この記事では、Laravel 5.6 の複数認証について説明します。ここでの複数認証は、複数のユーザー モデルに対して認証を行うプロセスにすぎません。
#次のセクションでは、Laravel の組み込み認証機能を説明します。具体的には、管理者ユーザーと通常ユーザーの両方を認証する方法を説明します。
ステップ 1: Laravel のセットアップ
composer を使用して Laravel プロジェクトをセットアップします。
composer create-project --prefer-dist laravel/laravel project-name
ステップ 2: データベース構成
.env ファイルを開き、ファイルにデータベース資格情報を設定します。
DB_DATABASE= database-name DB_USERNAME= root DB_PASSWORD= database-password
ステップ 3: 認証
Laravel の組み込み認証システムを使用して登録してログインするには、次のコマンドを実行するだけです:
php artisan make:auth
ステップ 4: モデルと移行のセットアップ
管理者用のモデルと移行の作成とセットアップ:
php artisan make:model Admin -m
管理者用のモデルをセットアップするには、app/Admin.php に移動します。そして、次のコードでコードを更新します:
/** * Remove 'use Illuminate\Database\Eloquent\Model;' */ use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class Admin extends Authenticatable { use Notifiable; // The authentication guard for admin protected $guard = 'admin'; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ];
管理者用の移行テーブルを設定するには、database/migration/***_create_admins_table.php に移動し、次のコードでコードを更新します:
// { Schema::create('admins', function (Blueprint $table) { $table->increments('id'); $table->string('email')->unique(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } //
ステップ 5: 管理者コントローラーのセットアップ
管理者用のコントローラーを作成するには、次のコマンドを実行します。
php artisan make:controller AdminController
コントローラーをセットアップするには、次の場所に移動します。 app/Http/Controllers/AdminController.php を開き、次のコードでコードを更新します:
class AdminController extends Controller{ /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('auth:admin'); } /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function index() { return view('admin'); }}
ステップ 6: 管理者ユーザーのログイン コントローラーを設定します
Toログイン コントローラーを作成するには、次のコマンドを実行します。
php artisan make:controller Auth/AdminLoginController
ログイン コントローラーを設定するには、app/Http/Controllers/Auth/AdminLoginController.php に移動し、次のコードでコードを更新します。
use Illuminate\Http\Request;use App\Http\Controllers\Controller;use Illuminate\Foundation\Auth\AuthenticatesUsers;use Illuminate\Support\Facades\Auth;class AdminLoginController extends Controller{ /** * Show the application’s login form. * * @return \Illuminate\Http\Response */ public function showLoginForm() { return view(’auth.admin-login’); } protected function guard(){ return Auth::guard('admin'); } use AuthenticatesUsers; /** * Where to redirect users after login. * * @var string */ protected $redirectTo = '/admin/dashboard'; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest:admin')->except('logout'); }}
ステップ 7: 通常ユーザー用のログイン コントローラーをセットアップする
通常ユーザー用にログイン コントローラーをセットアップするには、app/Http/Controllers/Auth/LoginController.php に移動し、次のコードで更新します。 コード:
///** * Show the application's login form. * * @return \Illuminate\Http\Response */public function showLoginForm(){ return view('auth.login');}//
ステップ 8: 管理者用のログイン ビューを設定する
管理者用のログイン ビューを作成して設定するには、リソース/ビューに移動します。 /auth/ および新しいファイル admin-login.blade.php を作成します。 resource/views/auth/login.blade.php からコードをコピーし、新しいファイルに貼り付けます。
次に、次の内容で新しいファイルを更新します。
// <div class="card-header">{{ __('Admin Login') }}</div> <div class="card-body"> <form method="POST" action="{{ route('admin.login.submit') }}"> //
ステップ 9: 管理者のホーム ビューを設定する
ホーム ビューを作成して設定するには管理者ビューの場合は、resources/views/ に移動し、新しいファイル admin-home.blade.php を作成します。 resource/views/home.blade.php のコードをコピーし、新しいファイルに貼り付けます。
次に、次の内容で新しいファイルを更新します。
// <div class="card"> <div class="card-header">Admin Dashboard</div> //
ステップ 10: Web アプリケーション ルーティングを設定する
アプリケーション用に Web を設定するにはルートの場合は、routes/web.php に移動し、次のコードでコードを更新します。
// Route::get('/', function () { return view('layouts.app'); }); Route::prefix('admin')->group(function() { Route::get('/login', 'Auth\AdminLoginController@showLoginForm')->name('admin.login'); Route::post('/login', 'Auth\AdminLoginController@login')->name('admin.login.submit'); Route::get('/home', 'AdminController@index')->name('admin.home'); }); //
ステップ 11: 例外ハンドラーを設定する
例外を設定するにはハンドラー、app/Exceptions/Hanler.php に移動し、次のコードでコードを更新してください:
// use Illuminate\Auth\AuthenticationException; // // protected $dontReport = [ \Illuminate\Auth\AuthenticationException::class, \Illuminate\Auth\Access\AuthorizationException::class, \Symfony\Component\HttpKernel\Exception\HttpException::class, \Illuminate\Database\Eloquent\ModelNotFoundException::class, \Illuminate\Session\TokenMismatchException::class, \Illuminate\Validation\ValidationException::class, ]; // // public function render($request, Exception $exception) { return parent::render($request, $exception); } /** * Convert an authentication exception into an unauthenticated response. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Auth\AuthenticationException $exception * @return \Illuminate\Http\Response */ protected function unauthenticated($request, AuthenticationException $exception) { if ($request->expectsJson()) { return response()->json(['error' => 'Unauthenticated.'],401); } $guard = array_get($exception->guards(), 0); switch ($guard) { case 'admin': $login = 'admin.login'; break; default: $login = 'login'; break; } return redirect()->guest(route($login)); }
ステップ 12: リダイレクト ミドルウェアをセットアップする
使用する認証後 リダイレクトミドルウェアを設定するには、app/Http/Middleware/RedirectIfAuthenticated.php に移動し、次のコードでコードを更新します。
// public function handle($request, Closure $next, $guard = null) { switch ($guard) { case 'admin' : if (Auth::guard($guard)->check()) { return redirect()->route('admin.home'); } break; default: if (Auth::guard($guard)->check()) { return redirect()->route('home'); } break; } return $next($request); } //
ステップ 13: 認証構成を設定する
認証構成をセットアップするには、config/auth.php に移動し、次のコードでコードを更新します:
// 'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ], 'admins' => [ 'driver' => 'eloquent', 'model' => App\Admin::class, ], // // 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], 'admin-api' => [ 'driver' => 'token', 'provider' => 'admins', ], ], // // 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'admins' => [ 'driver' => 'eloquent', 'model' => App\Admin::class, ], ], // // 'passwords' => [ 'users' => [ 'provider' => 'users', 'table' => 'password_resets', 'expire' => 60, ], 'admins' => [ 'provider' => 'admins', 'table' => 'password_resets', 'expire' => 15, ], ],
ステップ 14: データベース移行のデフォルトの文字列の長さを設定する
データベース移行のデフォルトの文字列長を設定するには、app/Providers/AppServiceProvider.php に移動し、次のコードでコードを更新します。
use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Schema; // public function boot(){ Schema::defaultStringLength(191); }
ステップ 15:移行
移行を実行するには、次のコマンドを入力します:
php artisan migrate
パッチを使用して管理者ログイン資格情報を入力します:
php artisan tinker $admin = new App\Admin $admin->email = 'admin@app.com' $admin->password = Hash::make(’admin-password’) $admin->save()
これで簡単に設定できるようになりました。 Laravel プロジェクトで複数の ID を確認してください。
以上がLaravel 5.6で複数の認証を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

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