Lumen+dingo+jwt 如何修改 token 校验失败的返回码?

这个问题困扰了我好久,我是百般无奈把这个问题提出来,

在token校验失败后服务端会返回一个401授权失败的错误码,但是错误码会被前端报错为异常,导致业务无法正常运行

在此请教一下大神们,你们如何解决此问题的

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6
leo

前端可以处理的,如果用的Promise可以在reject里写回调函数

8年前 评论

@leo 我想了一下,估计这块是封在底层了,所以只能从前端入手了,我目前是用vue-resource,可以用拦截器来拦截状态从而根据不同的状态做不同的操作

8年前 评论
leo

@周先生 vue-resource用的是Promise啊,不过像401这种错误确实可以用拦截器来处理

8年前 评论

说说我的处理,写了继承jwt的middleware,重写respond方法。

protected function respond($event, $error, $status, $payload = [])
    {
        $response = $this->events->fire($event, $payload, true);

        return $response ?: $this->response->json(['error' => $error, 'status' => $status], 200);
    }
8年前 评论

使用这个可以解决!
try {
$token = (new Parser())->parse((string) $token);
} catch (\Exception $e) {
return false;
}

8年前 评论

可以在jwt事件里面处理 tymon.jwt.absent tymon.jwt.expired tymon.jwt.invalid tymon.jwt.user_not_found

8年前 评论

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