Php laravel 5中的两个登录表单
我一直在想我怎么能在laravel 5中制作两个登录表单呢。。。这是因为我有一个多站点的项目,我在一个项目中有管理站点和公共站点 我对路由进行了分组,以便管理路由响应一个域,公共路由响应另一个域,如下所示:Php laravel 5中的两个登录表单,php,laravel,login,laravel-5,Php,Laravel,Login,Laravel 5,我一直在想我怎么能在laravel 5中制作两个登录表单呢。。。这是因为我有一个多站点的项目,我在一个项目中有管理站点和公共站点 我对路由进行了分组,以便管理路由响应一个域,公共路由响应另一个域,如下所示: Route::group(array( 'domain' => 'restaurant.com', 'namespace' => 'Public' ), function () { //some routes }); Route::group(array( 'domai
Route::group(array( 'domain' => 'restaurant.com', 'namespace' => 'Public' ), function () {
//some routes
});
Route::group(array( 'domain' => 'restaurant.net', 'namespace' => 'Admin' ), function () {
//some routes
});
app
|---Http
|---Controllers
|----------Public
| |---Auth
| | |---AuthController
| | |---PasswordController
| |--- ...
|
|----------Admin
|---Auth
| |---AuthController
| |---PasswordController
|--- ...
我还在每组路由中创建了用于身份验证的自定义路由,如下所示(这些路由用于公共):
我还在每个父文件夹中创建了带有控制器的Auth文件夹(“AuthController
”、“PasswordController
”),我的控制器如下所示:
Route::group(array( 'domain' => 'restaurant.com', 'namespace' => 'Public' ), function () {
//some routes
});
Route::group(array( 'domain' => 'restaurant.net', 'namespace' => 'Admin' ), function () {
//some routes
});
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列,用于筛选来自公共或管理站点的用户。
这里的主要问题是:如何为我的项目制作两个登录表单?
我想要的是,公共用户不能登录到管理网站,反之亦然
到目前为止,我尝试的是覆盖AuthenticatesAndRegistersUsers
函数,如getLogin
,getRegister
,以及变量,如$loginPath
,$redirectTo
,但是当调用publicPostLogin(签出路由)时,在Public的登录形式中作为操作{route>('publicPostLogin')}
它就是不起作用…你听说过吗。在这个库中,有两个或更多类型的用户可以在一个laravel应用程序中登录。
在我们的例子中,有两种类型的userAdmin和Public,这意味着用户是正确的。亲爱的,你通过insert usertype识别的用户完全错了
您必须使用此库。只需按照该链接步骤安装库。并分配两个不同的表,就像我们在restaurant.com
中的例子一样,有一个用户类型是Public,这意味着有一个简单的用户使用用户表
另一方面,对于admin,在我们的例子中有restaurant.net
。此登录表单使用admin表登录
忘记密码和重置密码功能在一个应用程序中分别工作
'multi' => [ 'admin' => [ 'driver' => 'database', 'table' => 'admin', 'email' => 'client.emails.password' ], 'users' => [ 'driver' => 'database', 'table' => 'users', 'email' => 'client.emails.password', ] ],
您可以更改
Authenticate
和RedirectIfAuthenticated
中间件以检查类型列。您还需要为管理部分创建两个新的中间件。每个Public和admin是否有一个中间件?是的,我通常在中间件di中创建一个admin
目录目录中复制两个中间件并添加正确的名称空间。只有一个users表,对吗?我会检查它,它是否处理在Public和Admin中登录的限制?是的,有users表。是的,它可以在这两个表中都绝对限制。我会检查它并告诉您这是否是我正在寻找的。我需要不同吗每个公用和管理员的ent auth控制器?不,完全不需要,您只需在auth文件中定义两个表,如上面库链接中所建议的。