Get in touch
or send us a question?
CONTACT

Laravel PassPort How to retrieve tokenID from acess_token (Personal Access Token)

The gist

I am assuming you are already aware of how Laravel/Passport works.

Let’s say you have generated a lot of personal access tokens that are associated to a specific user and you would like to delete a specific token without having to delete all the other tokens.

I am sure you are thinking, I will just get the token associated with the user using the relationship already defined if you use the HasAPiKeys from Laravel/Passport.

That is well and good if the user is also serving as a client in your api. But if it is just a Personal Access Token you can’t retrieve the access token of created for that user (unless you get it from the header, but that won’t really help solve your problem since you still have to know which token matches a particular ID) because of how Laravel/Passport is designed.

To bypass this scenario you can use the following code below.

Forgive me for using an image instead of embedded code 😅. Let me know below if this helps.

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Http;
use Laravel\Passport\Passport;
use Lcobucci\JWT\Parser as JwtParser;

class AuthController extends Controller
{

    public function getTokenId($token) {
        $id = app(JwtParser::class)->parse($token)->claims()->get('jti');
        return $id;
    }
}