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