Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在使用邮递员登录时修复401未授权状态_Reactjs_Jwt - Fatal编程技术网

Reactjs 如何在使用邮递员登录时修复401未授权状态

Reactjs 如何在使用邮递员登录时修复401未授权状态,reactjs,jwt,Reactjs,Jwt,我对401未授权状态有问题,我不知道为什么当我尝试测试我对邮递员的身份验证登录时,它会给出这种状态 我只是在看视频 这是我数据库中的表 这是我的邮递员: 登录功能向我提供错误响应。 public function login() { $credentials = request(['email', 'password']); if (! $token = auth()->attempt($credentials)) { return response

我对401未授权状态有问题,我不知道为什么当我尝试测试我对邮递员的身份验证登录时,它会给出这种状态

我只是在看视频

这是我数据库中的表

这是我的邮递员:

登录功能向我提供错误响应。

public function login()
{
    $credentials = request(['email', 'password']);

    if (! $token = auth()->attempt($credentials)) {
        return response()->json(['error' => 'Unauthorized'], 401);
    }

    return $this->respondWithToken($token);
}

由于这个问题包含多个错误,我将把它全部写下来作为答案

您可能没有将api guard设置为默认中间件。 要解决这个问题,请更改中间件(他在视频中也这样做了),这也在
Configure Auth guard
部分的文档()中描述

如果您不想更改默认保护,那么只需像这样更改尝试方法:
$token=auth()->guard('api')->trunt($credentials)

对于您的代码,这仍然会导致错误,因为您正在if语句中定义令牌变量。因此,只需在if语句之外定义标记并使用它。这是代码的完整编辑版本

public function login()
{
    $credentials = request(['email', 'password']);

    $token = auth()->guard('api')->attempt($credentials);

    if (!$token) {
        return response()->json(['error' => 'Incorrect credentials'], 401);
    }

    return $this->respondWithToken($token);
}

您是否将API中间件设置为默认值?如果没有,就这样做。如果您不想更改默认中间件,请执行以下操作:
auth('api')->trunt($credentials)
在哪里可以找到它?如果查看发布的代码snipper,您可以将trunt方法视为If语句。如果API不是您的默认中间件,那么只需更改auth方法中的中间件,就像我刚才发布的那样。文档是调试代码的好地方。你的建议也有同样的错误。啊,对不起,我的不好。错误的方法。改为试试这个
$token=auth()->guard('api')->trunt($credentials)我的代码中有这个,它工作得很好,即使我尝试配置它,它也会提供不正确的凭据,我不知道为什么,因为我使用md5哈希生成器创建密码,这就是为什么它提供错误的凭据。您使用Laravel吗?Laravel使用bcrypt作为其加密。不md5@DevGe,如果我的回答对你有帮助的话。请接受它,以便人们知道它在将来会起作用。对不起,rick延迟回复,我很忙。谢谢你给我的建议。我所做的解决方案是更改数据库中的密码,并将密码用作bcrypt。。