![](/img/trans.png)
[英]Laravel 5 How to work with authentication on two different login forms with different tables
[英]Two login forms in laravel 5
我一直想知道如何在laravel 5中制作兩個登錄表單一段時間...原因是因為我有一個多站點項目,我有一個管理站點,以及一個項目中的公共站點。
我已對路由進行分組,以便管理路由回答域,公共路由回答另一個域,如下所示:
Route::group(array( 'domain' => 'restaurant.com', 'namespace' => 'Public' ), function () {
//some routes
});
Route::group(array( 'domain' => 'restaurant.net', 'namespace' => 'Admin' ), function () {
//some routes
});
我還在這樣的每組路由中創建了用於身份驗證的自定義路由(這些是針對Public的):
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
Route::get( '/register' , [
'as' => 'publicRegister' ,
'uses' => 'Auth\AuthController@getRegister'
] );
Route::post( '/registrar' , [
'as' => 'publicPostRegister' ,
'uses' => 'Auth\AuthController@postRegister'
] );
Route::get( '/login' , [
'as' => 'publicLogin' ,
'uses' => 'Auth\AuthController@getLogin'
] );
Route::post( '/login' , [
'as' => 'publicPostLogin' ,
'uses' => 'Auth\AuthController@postLogin'
] );
Route::get( '/logout' , [
'as' => 'publicLogout' ,
'uses' => 'Auth\AuthController@getLogout'
] );
我還在每個父文件夾中用它的控制器(' AuthController
',' PasswordController
')創建了Auth文件夾,我的控制器是這樣的:
app
|---Http
|---Controllers
|----------Public
| |---Auth
| | |---AuthController
| | |---PasswordController
| |--- ...
|
|----------Admin
|---Auth
| |---AuthController
| |---PasswordController
|--- ...
所以對於視圖我有這樣的單獨的Auth視圖:
resources
|---views
|----------Public
| |---Auth
| | |---login.blade.php
| | |---password.blade.php
| | |---register.blade.php
| | |---reset.blade.php
| |--- ...
|
|----------Admin
|---Auth
| |---login.blade.php
| |---password.blade.php
| |---register.blade.php
| |---reset.blade.php
|--- ...
在我的模型中,users表有一個類型列,可以從Public或Admin站點過濾用戶。 這里的主要問題是:我如何為我的項目制作兩個登錄表單? 我想要的是公共用戶無法登錄管理站點而反之亦然。
什么到目前為止,我已經試過是覆蓋AuthenticatesAndRegistersUsers
功能,如getLogin
, getRegister
也是變量,如$loginPath
, $redirectTo
但調用時publicPostLogin
公共的登錄表單有作為動作(結帳路由) {{ route('publicPostLogin') }}
它只是不起作用......
你聽說過laravel中的Multiauth嗎 ? 在這個庫中有兩個或更多類型的用戶可以在一個laravel應用程序中登錄。 在我們的例子中有兩種類型的用戶管理員和公共 ,這意味着用戶權利。你通過插入usertype識別用戶完全錯誤親愛的。
你必須使用這個庫。只需按照鏈接步驟安裝庫。並在restaurant.com
分配兩個不同的表,例如用戶類型是Public,表示有使用User表的簡單用戶。
在另一方面,對於管理員來說,在我們的案例中有restaurant.net
。這個登錄表單使用管理表登錄。
忘記密碼和重置密碼功能都在一個應用程序中單獨工作。
'multi' => [ 'admin' => [ 'driver' => 'database', 'table' => 'admin', 'email' => 'client.emails.password' ], 'users' => [ 'driver' => 'database', 'table' => 'users', 'email' => 'client.emails.password', ] ],
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.