'Laravel - Sanctum Remove Database Id From Generated Token
Currently I am building rest API using Laravel. For authentication, I am using the Sanctum package. Every time a user is logged in it generate a token that looks like this:
"token": "98|b45h97e17VVpugjO71wwURoicIqDQP2ejTkCWwoD"
But why Sanctum includes the database id with the token?
How to remove the database id from the token?
Solution 1:[1]
try this,
Option 1:-
In Controller:-
$token = $user->createToken(''project_name')->plainTextToken;
$auth_token = explode('|', $token)[1];
Option 2:-
In postman Refer image:-
Solution 2:[2]
I just looked through the source history and found that the ID was introduced in a well-named commit called more performant tokens lookup
, so that is the reason the ID is part of the token.
But if you look at the code loading/verifying the token there is a fallback at the beginning in case there is no ID. So you can simply remove it from the token, for example by overriding the findToken
method.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | Thomas |