我对这401条未授权状态有疑问,我不知道为什么当我尝试对邮递员进行身份验证登录时会显示该状态
我只是看视频在做什么
这是我数据库中的表
这是我的邮递员:
登录功能可为我提供错误响应。
public function login()
{
$credentials = request(['email', 'password']);
if (! $token = auth()->attempt($credentials)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return $this->respondWithToken($token);
}
答案 0 :(得分:1)
由于该问题包含多个错误,我将其全部写为答案。
您可能没有将api Guard设置为默认的中间件。
要解决此问题,请更改Configure Auth guard
部分的文档(https://jwt-auth.readthedocs.io/en/develop/quick-start/)中描述的中间件(在视频中也是如此)。
如果您不想更改默认的保护措施,则只需更改以下尝试方法:$token = auth()->guard('api')->attempt($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);
}