请问 jwt 验证中怎么指定 model (不是 user) 或者指定 guard 也行

用的JWT和dingo\api做接口,想做无痛刷新token的middleware,但是发现在该middleware中用$this->auth->parseToken()->authenticate()进行验证时,总是取不到对应的对应数据(用JWTAuth也是同样问题)。getPayload()->get('sub')得到的数据是正确的,怀疑是model用的默认的user(在该middleware前如果加一层'middleware' => ['auth:apijwt']是能正常取到对应数据,但是过期这些不好处理)。所以问下各位大大,有没什么办法在自定义的无痛刷新middleware进行验证前,指定对应的model(指定对应guard也行,只要对应model正确就好),谢谢!(JWT用的1.0的,看到网上用config(['jwt.user' => '\App\Models\ApiWeChat\JwtUser'])的试了也不行)

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 11
auth('guard')
或
$this->auth->guard('guard')
4年前 评论
fangbualsk (楼主) 4年前
8565012 (作者) 4年前
fangbualsk (楼主) 4年前
8565012 (作者) 4年前
fangbualsk (楼主) 4年前
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
   ],

config/auth.php 更换这个model。

4年前 评论
fangbualsk (楼主) 4年前

请问解决了吗? 我也是这个问题

public function authenticate()
{
    $id = $this->getPayload()->get('sub');

    dd($this->auth);
    if (! $this->auth->byId($id)) {
        return false;
    }

    return $this->user();
}

$id取得到 但是$this->auth->byId($id) 就娶不到 我猜想也是auth 不同model的问题

3年前 评论

大佬们,问题结果如何了,遇到了相同的问题

3年前 评论

auth($guard)->payload()->get('iss')

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!