laravel passport createToken not giving me the hashed token

Viewed 1468

laravel passport createToken not giving me the hashed token.It giving me this object from database table

{
  "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
}.

I need the token for verifying. I did composer require laravel/passport

php artisan migrate
php artisan passport:install

use HasApiTokens, HasFactory, Notifiable; in the boot method of AuthServiceProvider Passport::routes(); in config/auth.php

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

my register controller function

$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);
3 Answers

Please make sure you are using the correct trait

use Laravel\Passport\HasApiTokens;

Not

use Laravel\Sanctum\HasApiTokens;

That was just laravel was giving me sanctum by default. and the HasApiToken in the user model is bydefault coming from sanctum instead of passport.

If you are use passport as authentication, make sure it has use Laravel\Passport\HasApiTokens, instead of Laravel\Sanctum\HasApiTokens; in your user model

Related