我对 Laravel 很陌生,我正在尝试创建一个检查用户是否“登录”的系统。
由于某些原因,我正在使用SSPI 身份验证。因此,基本上,当用户到达网站时,会弹出一个登录弹出窗口,要求输入登录名和密码,并要求 SSPI 模块针对 AD 进行身份验证。
我想要做的是,在任何路线上,它都会检查 session 变量。如果此变量不存在,它将重定向到配置了 SSPI 的路由。
我尝试了以下方法:
Route::any('{all}', function()
{
if (!Session::get('PHP_USER_AUTH')) {
redirect::route('auth');
} else {
return 'Logged in as ' . Session::get('PHP_USER_AUTH');
}
})->where('all', '.*');
Route::get('/auth', function() {
// Do something
});
这是 SSPI 配置:
<files auth>
AuthName "Laravel Auth"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
require valid-user
</files>
明显的问题是,当我到达任何路线时,它都会检查 session 变量,找不到它并重定向到身份验证路线。但是,在身份验证路由上,它还会检查变量,不会找到它并重定向等。
有没有办法制作类似除所有路由
之类的东西。或者我以错误的方式思考这个问题?
感谢您的帮助。
最佳答案
一个快速的解决方法是将 Route::get('/auth' ...);
block 移至 Route::all(...);
阻止。
这将告诉 Laravel 覆盖所有路由。
关于php - Laravel 4 - 路线::任何除了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23079756/