拉拉维尔简单授权 - 有时不起作用 - "Invalid credentials."



我使用" 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等都不起作用。

相关内容

  • 没有找到相关文章

最新更新