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

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

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

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 6
leo

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

7年前 评论

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

7年前 评论
leo

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

7年前 评论

说说我的处理,写了继承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);
    }
7年前 评论

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

7年前 评论

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

7年前 评论

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