Laravel jwt 多表(多用户端)验证隔离的实现
Tips: tymon/jwt-auth 作者已通过增加 prv 字段修复这一问题#1167,但是如果你是用 dingo api + jwt 的话,该问题依然存在。#当同一个 laravel 项目有多端都需要使用 jwt 做用户验证时,如果用户表有多个,就需要做 token 隔离,不然会发生移动端的 token 也能请求管理端的问题,造成用户越权。会引发这个问题的原因是 laravel 的 jwt token 默认只会存储数据表的主键的值,并没有区分是那个表的。我们来看看 laravel 的 jwt token 的原貌:携带数据的是 sub 字段,其他字段是 jwt 的验证字段。我们知道要使用 jwt 验证,用户模型必须要实现 JWTSubject 的接口(代码取自我们可以看看实现的这两个方法的作用:
下载地址
用户评论