大神好。我的项目采用jwt认证,用户登录后产生的token,是放在header里下发给客户端的,客户端每次请求携带token。认证通过后继续业务。流程这样没错吧。(这样有安全问题吗?)
另外,用户登录后。在token有效期内,用户后续向服务端发请求,我想获取用户信息是不是可以用:$user = auth()->userOrFail(); 或 $user = auth()->user(); 来获取用户信息,
但是据我看源码这两个方法都是实时去查询数据库的,这样并不好,访问量大时会给数据库带来压力。有没有一种办法能像 session 机制一样,从内存中读取用户登录状态信息?
如果使用了jwt的方案,还需要向sessoin来维护登录状态,那感觉jwt多余了。
[后面添加]
翻了一下jwt源码:貌似 auth()->getUser()是从缓存中获取用户信息的。
找到答案了,是从jwt载荷中获取用户表主键,有这个主键一切好办。
auth()->playload()