首页 > 解决方案 > laravel 护照 createToken 没有给我散列令牌

问题描述

laravel 护照 createToken 没有给我散列令牌。它给了我数据库表中的这个对象

{
  "name": "Laravel Password Grant Client",
  "abilities": [
       "*"
  ],
  "tokenable_id": 10,
  "tokenable_type": "App\\Models\\User",
  "updated_at": "2021-09-02T15:58:03.000000Z",
  "created_at": "2021-09-02T15:58:03.000000Z",
  "id": 7
}.

我需要令牌进行验证。我做了composer require laravel/passport

php artisan migrate
php artisan passport:install

使用 HasApiTokens、HasFactory、Notifiable;在 AuthServiceProvider Passport::routes() 的 boot 方法中;在 config/auth.php

'api' => [
    'driver' => 'passport',
    'provider' => 'users',
],

我的注册控制器功能

$validator = Validator::make($request->all(), [
    'name' => 'required|string|max:255',
    'email' => 'required|string|email|max:255|unique:users',
    'password' => 'required|confirmed|string|min:6',
]);
if ($validator->fails()) {

    return response(['errors' => $validator->errors()->all()], 422);
}
$request['password'] = Hash::make($request['password']);
$request['remember_token'] = Str::random(10);
$user =  User::create($request->toArray());
$token = $user->createToken('Laravel Password Grant Client')->accessToken;

return response(["ok" => true, "message" => "You have successfully registered", "user" => $user, "token" => $token], 200);

标签: laravellaravel-passport

解决方案


请确保您使用的是正确的特征

use Laravel\Passport\HasApiTokens;

不是

use Laravel\Sanctum\HasApiTokens;

推荐阅读