我有一个用户登录系统,包括两个步骤:
- 用户登录
- 尝试将用户绑定到 AD(这是 LDAP 身份验证模块)
- 如果用户可以通过 AD 登录,请检查用户是否存在于用户表中
- 如果用户表中不存在用户,请添加它们 - 只有“用户名”和“好名字”
- 如果添加了用户,他们将不属于任何团队,并且将被通知联系他们的经理以继续帐户设置。
- 将用户列加载到 Laravel 会话
credentials
中 - 所以现在我们有了 AD 登录名、“好”名(第一个最后一个)、选定的团队 ID 等。没有密码,因为用户已经过身份验证。
- 团队选择 - 表
userTeams
数据透视表。 - 将用户路由到团队仪表板
现在,我有这条路线:
// This group forces user to be logged in; auth() will check if user has selected a team and ensures the team exists.
Route::group(array('before' => 'auth'), function() {
// Handle team - URL will be /dashboard -- Team controller based on view_name from `teamUsers` table
$teamUser = php_sapi_name() == "cli" ? null : @TeamUser::find(Session::get('credentials.team'));
if(!empty($teamUser)) {
$team = ucfirst(strtolower($teamUser->teams()->first()->view_name));
Route::controller('dashboard', 'Team'.$team.'Controller');
}
// Handle index
Route::controller('/', 'IndexController');
});
但是,我不觉得这是一个非常优雅的解决方案 - 主要是因为我无法通过这种方法进行反向路由。
有什么提示或建议吗?