Auth.basic Laravel 5.8 中未显示身份验证提示
Auth.basic Authentication Prompt not showing in Laravel 5.8
我一直在为某些 cronjobs 使用 auth.basic 中间件。直到最近它还工作得很好。突然登录提示不再显示,它立即将我发送到正常登录页面。我没有对路由、路由中的控制器或 htaccess 文件进行任何更改。
在我的 htaccess 文件中还有这一行:
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
我定义的路由如下:
Route::group(['middleware' => ['auth.basic','role:admin']], function() {
Route::get('/backup', 'ScriptController@cronjobs');
});
有人知道为什么登录提示不再显示了吗?我在我的服务器上的多个设备上以及我的本地主机上尝试过它。好像没有出现了
谢谢!
// Route group
Route::group(['as'=>'admin.','prefix'=>'admin','namespace'=>'Admin','middleware'=>['auth','admin']], function (){
Route::get('dashboard','DashboardController@index')->name('dashboard');
});
// admin middleware
if(Auth::check() && Auth::user()->role->id == 1)
{
return $next($request);
}else {
return redirect()->route('login');
}
// RedirectIfAuthenticated.php
if (Auth::guard($guard)->check() && Auth::user()->role->id==1) {
return redirect()->route('admin.dashboard');
}else {
return $next($request);
}
// karnel.php file
use App\Http\Middleware\Adminmiddleware;
protected $routeMiddleware = [
'admin' => Adminmiddleware::class,
];
// LoginController
public function __construct()
{
if(Auth::check() && Auth::user()->role->id == 1)
{
$this->redirectTo = route('admin.dashboard');
}
$this->middleware('guest')->except('logout');
}
所以我发现了问题所在。在控制器内部有人添加了这些行:
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:admin');
}
我猜这会覆盖 auth.basic 中间件。现在它再次按预期工作!
还是谢谢你。
我一直在为某些 cronjobs 使用 auth.basic 中间件。直到最近它还工作得很好。突然登录提示不再显示,它立即将我发送到正常登录页面。我没有对路由、路由中的控制器或 htaccess 文件进行任何更改。
在我的 htaccess 文件中还有这一行:
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
我定义的路由如下:
Route::group(['middleware' => ['auth.basic','role:admin']], function() {
Route::get('/backup', 'ScriptController@cronjobs');
});
有人知道为什么登录提示不再显示了吗?我在我的服务器上的多个设备上以及我的本地主机上尝试过它。好像没有出现了
谢谢!
// Route group
Route::group(['as'=>'admin.','prefix'=>'admin','namespace'=>'Admin','middleware'=>['auth','admin']], function (){
Route::get('dashboard','DashboardController@index')->name('dashboard');
});
// admin middleware
if(Auth::check() && Auth::user()->role->id == 1)
{
return $next($request);
}else {
return redirect()->route('login');
}
// RedirectIfAuthenticated.php
if (Auth::guard($guard)->check() && Auth::user()->role->id==1) {
return redirect()->route('admin.dashboard');
}else {
return $next($request);
}
// karnel.php file
use App\Http\Middleware\Adminmiddleware;
protected $routeMiddleware = [
'admin' => Adminmiddleware::class,
];
// LoginController
public function __construct()
{
if(Auth::check() && Auth::user()->role->id == 1)
{
$this->redirectTo = route('admin.dashboard');
}
$this->middleware('guest')->except('logout');
}
所以我发现了问题所在。在控制器内部有人添加了这些行:
public function __construct()
{
$this->middleware('auth');
$this->middleware('role:admin');
}
我猜这会覆盖 auth.basic 中间件。现在它再次按预期工作!
还是谢谢你。