我使用" HTTP基本身份验证";在Laravel 5.4中
工作正常,但有时显示"无效凭据"。我不能登录(HTTP基本认证不弹出)。
我怀疑Chrome正在发送一些它已经存储的凭据,而Laravel没有对它进行配对,而不是显示另一个Auth弹出窗口,它只是死于文本"无效凭据。">
我试着删除所有的cookie,缓存,除了"密码"。(我不想丢失它们),但它仍然没有显示简单验证弹出询问我的凭据
我试过在Chrome Ghost/Guest模式下打开网站,它在那里工作(要求授权,然后登录)。
你能帮忙吗?
我设置了'middleware' =>的身份验证。在ROUTES中输入basic',然后输入Auth:: ROUTES ();然后在/app/Http/kernel。php中添加这一行:
protected $routeMiddleware = [
'auth' => IlluminateAuthMiddlewareAuthenticate::class,
'auth.basic' => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class,
'bindings' => IlluminateRoutingMiddlewareSubstituteBindings::class,
'can' => IlluminateAuthMiddlewareAuthorize::class,
'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class,
'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class,
];
所以基本上我没有自定义。只是简单的Auth加法。
UPDATE # 1:
我调试了这个文件vendorlaravelframeworksrcIlluminateAuthSessionGuard.php
然而,即使把我自己的东西:
header('WWW-Authenticate:Basic realm=test');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
不调用弹出窗口!!据我所知,这似乎是Chrome浏览器的问题。我试了各种方法,但仍然没有弹出窗口。
所以,基本上我调用这个地址:https://username: password@mysite.com/
这里重要的是使用正确的用户名和密码!
之后它又开始工作了,所以这是Chrome的问题:)
任何其他方法,包括chrome://重启或擦除缓存,cookie等都不起作用。