以下是我在laravel 9项目中的登录功能。我正在尝试通过laravel-passport创建一个身份验证令牌。
public function login(Request $request) {
$user = User::where('email', $request->email)->first();
if ($user) {
if (Hash::check($request->password, $user->password)) {
$token = $user->createToken('Laravel Password Grant Client')->accessToken;
$response['token'] = $token;
return response($response, 200);
} else {
$response = ["message" => "Password mismatch"];
return response($response, 422);
}
}
}我得到的反应是,
{
"token": {
"name": "Laravel Password Grant Client",
"abilities": [
"*"
],
"tokenable_id": 1,
"tokenable_type": "App\\Models\\User",
"updated_at": "2022-07-04T05:58:36.000000Z",
"created_at": "2022-07-04T05:58:36.000000Z",
"id": 62
}
}我在这里没有任何象征性的东西。请帮我解决这个问题。
发布于 2022-07-17 14:07:37
accessToken是正确的,只是不要忘记使用:
use Laravel\Passport\HasApiTokens;而不是:
use Laravel\Sanctum\HasApiTokens;这是正确的:$token = $user->createToken('Laravel Password Grant Client')->accessToken;
发布于 2022-07-04 07:59:26
在创建登录令牌之后,您必须先登录用户。
$data' email‘=请求电子邮件
$data' password‘=请求密码
Auth::attempt($data);
$loginUser = Auth::user();
$token = $loginUser->createToken('Laravel Password Grant Client')->accessToken;
$loginUser->accessToken = $token;发布于 2022-07-16 15:12:52
只需使用plainTextToken而不是accessToken。
$token = $user->createToken('Laravel Password Grant Client')->plainTextToken;它将给您一个字符串,您可以使用它作为API令牌。
https://stackoverflow.com/questions/72852350
复制相似问题