Laravel with JWT Auth:获取状态码的错误消息

时间:2017-04-24 12:59:37

标签: javascript laravel-5 error-handling vue.js jwt

我尝试在我的Laravel + Vue SPA中实现JWT Auth。

在我的控制器中,我检查凭证,如

try {
        if (!$token = JWTAuth::attempt($credentials)) {
            return response()->json(
                [
                    'error' => 'Invalid Credentials',
                ], 401
            );
        }
    } catch (JWTException $e) {
        return response()->json(
            [
                'error' => 'Could not create token!',
            ]
        );
    }

    return response()->json(
        [
            'token' => $token,
        ]
    );

我的API调用如下所示:

axios.post('/api/user/signin', payload)
    .then((res) => {
      console.log(res)
    })
    .catch((err) => {
      console.log(err)
    })

如果我使用payload传递有效凭据,我会在then块中获取令牌,并可以在控制台中记录此内容。

如果我传递无效凭据,我在控制台中收到错误:

  

错误:请求失败,状态码为401      在createError(app.js:10562)      在定居(app.js:21378)      在XMLHttpRequest.handleLoad(app.js:10401)

我如何得到错误"无效的凭据"?如果我从响应中删除状态代码或将其设置为200,我会收到错误"无效的凭据"。

Error with Status

1 个答案:

答案 0 :(得分:1)

您可以使用response错误键。得到回应。

axios.post('/api/user/signin', payload)
    .then((res) => {
      console.log(res)
    })
    .catch((err) => {
      console.log(err.response)
    })

点击此处:https://github.com/mzabriskie/axios/blob/master/UPGRADE_GUIDE.md#012x---0130