我用不同的电子邮件地址和密码创建了2个帐户。我有一个HTTP请求发送令牌(登录后存储在本地存储中),如下所示:
http://apiurl/api/projects/getProjects?token=tokenString
在方法内部,我使用以下行根据令牌检索经过身份验证的用户:
$authenticatedUser = JWTAuth::parseToken()->authenticate();
这将检索我创建的第一个帐户的电子邮件地址,即使我在第二个帐户登录也是如此。对于每个帐户,请求中的令牌不同,但authenticatedUser每次都用于同一帐户。
这只发生在一个特定帐户中,它认为我以其他用户身份登录。如果我从数据库中删除所有用户并创建一些新帐户,那么其中一个会遇到同样的问题。
一个说明。我认为出于安全原因,您不应该在url查询参数中发送令牌。请参阅here。
我建议将其发送到cookie中。在express.js中,像这样。
res.cookie("auth", token);
return res.redirect(`http://localhost:3000/socialauthredirect`);