【发布时间】:2015-10-27 04:06:16
【问题描述】:
我正在 Laravel 5 下构建一个多站点项目,一切正常,路由按组拆分,视图和控制器在路由内,但我不知道如何使用 auth在这两个项目中,这是迄今为止的结构:
app
|---Http
| |---Controllers
| |----------Club
| | |---IndexCtrl
| | |---ClientsCtrl
| | |--- ...
| |
| |----------Center
| | |----IndexCtrl
| | |----UsersCtrl
| | |----ServicesCtrl
| | |---- ...
| |
| |----------Auth
|
|---- ...
|
|----resources
|-------- ...
|--------views
|----Auth
|----Center
|----Club
|---- ...
两个站点分别是Club和Center,Club有可以登录客户区的Client,Center有可以登录网站管理的用户。
现在我可以登录到中心,因为 Auth 具有默认配置,并且我使用 Laravel 5 默认用户管理,但我想为客户端提供另一个身份验证(这意味着另一个登录表单,但用户使用同一个表分贝)。
更新 1: 这是我的 routes.php
Route::group(array('domain' => 'site.center', 'namespace' => 'Center', 'middleware' => 'auth',), function () {
Route::get('/', [
'as' => 'adminIndex',
'uses' => 'AdminCtrl@index'
]);
Route::get('/out', [
'as' => 'adminOut',
'uses' => 'AdminCtrl@out'
]);
});
Route::group(array('domain' => 'site.club', 'namespace' => 'Club', 'middleware' => 'auth',), function () {
Route::get('/', [
'as' => 'publicIndex',
'uses' => 'PublicCtrl@index'
]);
Route::get('/out', [
'as' => 'publicOut',
'uses' => 'PublicCtrl@out'
]);
});
//Routes for auth
Route::controllers([
'auth' => 'Auth\AuthController',
'password' => 'Auth\PasswordController',
]);
Route::get('/register', [
'as' => 'register',
'uses' => 'Auth\AuthController@getRegister'
]);
Route::post('/register', [
'as' => 'post.register',
'uses' => 'Auth\AuthController@postRegister'
]);
Route::get('/in', [
'as' => 'in',
'uses' => 'Auth\AuthController@getLogin'
]);
Route::post('/in', [
'as' => 'post.in',
'uses' => 'Auth\AuthController@postLogin'
]);
Route::get('/out', [
'as' => 'out',
'uses' => 'Auth\AuthController@getLogout'
]);
我怎样才能有不同的登录和注册俱乐部和中心的看法?
【问题讨论】:
-
“我想为客户提供另一个身份验证”是什么意思?单独的登录表单?单独的用户表?还有什么?
-
已经澄清了@jedrzej.kurylo
-
您是否有需要登录但两种类型的用户都可以使用的区域?
-
不,俱乐部网站中的某些部分必须客户登录,并且中心中的所有部分都需要登录用户,俱乐部和客户区域都不是通过一次登录关联的@jedrzej.kurylo
-
问题是 Laravel 的 auth 将用户 ID 存储在会话中,并使用它为每个请求加载用户。使用单独的表,您将在不同的表中拥有相同的 ID,因此默认行为将不起作用。如果不同表中的 ID 可能相同,那么让它工作起来会很困难——您可能需要提供自己的 Auth 类实现,因为覆盖用户提供程序是不够的。
标签: php laravel authentication laravel-5