我正在编写单页 Web 应用程序。
我在前端使用 Vue.js,在后端使用 Laravel。
我包含了 Passport token 身份验证,并且正在发送 auth token
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) 有时会返回一些错误信息。
我没能找到真正的解决方案。
我现在的技巧只是将代码更改为始终返回 1。
这不会改变 token 身份验证的工作方式,但会删除 Rsa 检查和此类故障导致的 401 错误。
关于php - Laravel 和 Passport,随机 401 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43161145/