Comments (5)
I'm using UUIDs as the primary key for my User model, the needed change is just export the default migration
php artisan vendor:publish --tag=sanctum-migrations
and change the tokenable
field to
$table->uuidMorphs('tokenable');
from sanctum.
How use Sanctum when User model use uuid (type and PK name uuid) ?
Changed migration to:
$table->string('tokenable_type');
$table->uuid('tokenable_uuid');
In User model:
public function tokens()
{
return $this->morphMany(Sanctum::$personalAccessTokenModel, 'tokenable', "tokenable_type", "tokenable_uuid");
}
Extend PersonalAccessToken (need for set morph options)
namespace App\Models;
use Laravel\Sanctum\PersonalAccessToken as BasePersonalAccessToken;
class PersonalAccessToken extends BasePersonalAccessToken
{
public function tokenable()
{
return $this->morphTo('tokenable', "tokenable_type", "tokenable_uuid");
}
}
Then in AppServiceProvider set usePersonalAccessTokenModel
namespace App\Providers;
use App\Models\PersonalAccessToken;
use Illuminate\Support\ServiceProvider;
use Laravel\Sanctum\Sanctum;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class);
}
///....
}
from sanctum.
use this in AppServiceProvider
public function boot()
{
Schema::defaultStringLength(191);
}
from sanctum.
I fixed doing:
1 - Changing sanctum migration, to:
$table->uuidMorphs('tokenable');
2 - Updating User model, adding:
public $incrementing = false;
protected $casts = ['id' => 'string'];
from sanctum.
Please fill out the issue template and share steps to reproduce the problem.
from sanctum.
Related Issues (20)
- Direct links to API routes HOT 1
- Migration file conflicts HOT 1
- Standalone tokens (without user model / tokenable_type relationship) HOT 1
- Update from 2.x to 3.x - isValidBearerToken() - ctype_digit() HOT 1
- SPA authentication leads to '400: bad request error' HOT 1
- Update to Laravel 11 causes 401 issues when using stateful domains HOT 1
- Issue with overriding default model HOT 1
- Could we have a more descriptive method on the request to access the model? HOT 2
- supportsToken is tied to a specific implementation detail HOT 7
- Unable to validate password using validation rules HOT 3
- Only in Sanctum 3 - Fix/unable to logout HOT 1
- Sanctum v3.3 - unable to logout HOT 1
- Sanctum should not change session config HOT 3
- Login succeeded, log out, then log in to another account error
- Handle JSON Response in guest Middleware - RedirectIfAuthenticated out of the box HOT 1
- Unauthenticated or infinite loop HOT 3
- Directly assign a guard to the sanctum
- Vendor publish creates new migration for personal_access_tokens even with already existing table HOT 2
- Issue with Auth ID Returning Incorrect User in Route HOT 1
- auth:sanctum middleware on logout not set user_id field null session HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sanctum.