Laravel 和 Passport,随机 401 错误

Laravel and Passport, random 401 errors

我正在编写单页 Web 应用程序。

我在前端使用 Vue.js,在后端使用 Laravel。

我包含了 Passport 令牌身份验证,我正在接收发送的身份验证令牌

var login_data = {
    client_id : 2,
    client_secret : "SECRET_KEY",
    grant_type : "password",
    username : "mail",
    password : "pass"
}

到此 Passport 端点 http://IPADDRESS/oauth/token。然后我验证我的 AJAX 请求,包括这个 header

{ 'Authorization': 'Bearer ' + ACC_TOKEN }

大多数时候一切正常,但有时我会 401 unauthorized。通常,如果我再做一次,请求就会通过。

我从 Kernel.php 中删除了 VerifyCsrfToken 中间件,并且还向异常添加了 API 路由,所以我认为这不是问题所在。

错误出现的频率似乎因网络而异,这意味着当连接到某些网络时,它几乎不会发生,但有时它是恒定的。

老实说,我不知道为什么会这样。

我的问题在 PROJECTDIR/vendor/lcobucci/jwt/src/Signer/Rsa.php.

尽管证书有效,这里的 openssl 函数 (openssl_get_publickey) 有时 return 还是有问题。

我没能找到真正的解决方案。

我现在的技巧只是将代码更改为始终 return 1.

这不会改变令牌身份验证的工作方式,但会删除 Rsa 检查和由此类故障引起的 401 错误。