首页 文章

laravel 5中的两种登录表单

提问于
浏览
3

我一直想知道如何在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 函数,如 getLogingetRegister 以及 $loginPath$redirectTo 等变量,但是当在Public的登录表单中调用 publicPostLogin (结帐路由)时,其行为为 {{ route('publicPostLogin') }} ,它只是不起作用.. .

1 回答

  • 0

    你听说Multiauth in laravel . 在这个库中有两个或更多类型的用户可以在一个laravel应用程序中登录 . 在我们的例子中有两个类型用户 AdminPublic ,这意味着用户权利 . 你通过插入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', ] ],
    

相关问题