请问JWT怎么设置对应的model(不是user)
用的JWT和dingo\api做接口,想做无痛刷新token的middleware,但是发现在该middleware中用$this->auth->parseToken()->authenticate()进行验证时,总是取不到对应的user(用JWTAuth也是同样问题)。getPayload()->get('sub')得到的数据是正确的,怀疑是model用的默认的user(在该middleware前如果加一层'middleware' => ['auth:apijwt']是能正常取到对应数据,但是过期这些不好处理)。所以问下各位大大,有没什么办法在自定义的无痛刷新middleware进行验证前,指定对应的model(指定对应guard也行,只要对应model正确就好),谢谢!(JWT用的1.0的,看到网上用config(['jwt.user' => '\App\Models\ApiWeChat\JwtUser'])的试了也不行)
3 Comments
在
config/auth
中配置auth对应model,比如:@shs: 这里我已经配置了,但是再不改变defaults 'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ]还有不在路由的middleware中指定的话,怎么指定? auth('jwtapi')->parseToken()->authenticate()这样的话又会报authenticate()方法找不到.(是需要在自定义的middleware中使用,不是在Controller中,Controller中试过有$guard可以指定)
auth('jwtapi')->authenticate()可以,但是走的好像不是JWT的authenticate()方法