我一直想知道如何在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'
] );
我_198669_ s控制器(' AuthController
', ' PasswordController
')在每个父文件夹中,我的控制器是这样的:
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表有一个 type 列,可以从Public或Admin站点过滤用户 . 这里的主要问题是:我如何为我的项目制作两个登录表单?我想要的是公共用户无法登录管理站点,反之亦然 .
我到目前为止所尝试的是覆盖 AuthenticatesAndRegistersUsers
函数,如 getLogin
, getRegister
以及 $loginPath
, $redirectTo
等变量,但是当在Public的登录表单中调用 publicPostLogin
(结帐路由)时,其行为为 {{ route('publicPostLogin') }}
,它只是不起作用.. .
1 回答
你听说Multiauth in laravel . 在这个库中有两个或更多类型的用户可以在一个laravel应用程序中登录 . 在我们的例子中有两个类型用户 Admin 和 Public ,这意味着用户权利 . 你通过插入usertype识别用户完全错误亲爱的 .
你必须使用这个库 . 只需按照链接步骤安装库 . 并在
restaurant.com
中分配两个不同的表,如我们的情况,用户类型是Public,这意味着有一个使用User表的简单用户 .另一方面,在我们的情况下,管理员有
restaurant.net
. 此登录表单使用管理表登录 .忘记密码和重置密码功能都在一个应用程序中单独工作 .