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 中间件。现在它再次按预期工作!

还是谢谢你。