ホームページ >バックエンド開発 >PHPチュートリアル >laravel5.2で表裏のユーザーログインを区別する方法を実現
1. フロントデスクログイン
laravel独自の認証を直接使用します
php artisan make:auth
その後、ルーティングファイルを表示できます:
Route::group(['middleware' => 'web'], function () { Route::auth(); Route::get('/home', 'HomeController@index'); });
phpArtisan miteを実行
2つのテーブルが生成されていることがわかります。
2. バックエンドログイン
設定ファイルを編集します
configauth.php
ガードに管理者を追加し、プロバイダーに管理者を追加します
3. データモデルを作成します
phpArtisan make:model Admin - -migrationを実行します
その後、databasemigrations でデータテーブル構造を変更し、user テーブルをコピーします
phpArtisan 移行を実行すると、管理テーブルが生成されることがわかります
4. バックグラウンドルーティングを定義します
ここでは、ルーティンググループを直接定義します
<?php return [ 'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'admins' => [ 'driver' => 'eloquent', 'model' => App\Admin::class, ], ], 'passwords' => [ 'users' => [ 'provider' => 'users', 'email' => 'auth.emails.password', 'table' => 'password_resets', 'expire' => 60, ], ], ];
5. コントローラーの作成
実行
Route::group(['prefix' => 'admin' ,'middleware' => 'admin'], function () { Route::get('login', 'Admin\AuthController@getLogin'); Route::post('login', 'Admin\AuthController@postLogin'); Route::get('register', 'Admin\AuthController@getRegister'); Route::post('register', 'Admin\AuthController@postRegister'); Route::get('logout', 'Admin\AuthController@logout'); Route::get('/', 'Admin\AdminController@index'); });
AuthController.phpは、Auth
php artisan make:controller Admin/AuthController php artisan make:controller Admin/AdminController
rrreで参照できます。ええ
6. ビューを作成しますここでは、認証内のビューとhome.blade.phpを新しい管理フォルダーに直接コピーします。
ログインと登録のフォームのアクションを変更し、管理者プレフィックスを追加します
<?php namespace App\Http\Controllers\Admin; use App\Admin; use Validator; use App\Http\Controllers\Controller; use Illuminate\Foundation\Auth\ThrottlesLogins; use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; class AuthController extends Controller { use AuthenticatesAndRegistersUsers, ThrottlesLogins; protected $redirectTo = '/admin'; protected $guard = 'admin'; protected $loginView = 'admin.login'; protected $registerView = 'admin.register'; public function __construct() { $this->middleware('guest:admin', ['except' => 'logout']); } protected function validator(array $data) { return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:admins', 'password' => 'required|confirmed|min:6', ]); } protected function create(array $data) { return Admin::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); } }次に、フロントエンドとバックエンドに別々にログインしてみてください。 7. ページジャンプの問題が発生する可能性がありますこの状況に遭遇した場合は、MiddlewareAuthenticate.php
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Auth; class AdminController extends Controller { public function __construct() { $this->middleware('auth:admin'); } public function index() { $admin = Auth::guard('admin')->user(); return view('admin.home'); } }上記は、フロントエンドとバックエンドを区別するためにエディターによって導入されたlaravel5.2実装です。ご質問がございましたら、メッセージを残してください。編集者が時間内に返信させていただきます。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。 laravel5.2 の表ユーザーログインと裏ユーザーログインを区別する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。