Use custom tokens instead of IDs on Laravel models.
tpenaranda/aiditokens is a Laravel package for use custom tokens instead of ids on laravel models..
It currently has 0 GitHub stars and 22 downloads on Packagist (latest version v1.1.0).
Install it with composer require tpenaranda/aiditokens.
Discover more Laravel packages by tpenaranda
or browse all Laravel packages to compare alternatives.
Last updated
A Laravel package to reference Models by using custom string tokens instead of IDs.
/api/user/32 ends as /api/user/5cb0b0dddf8ae37a6e8066d4ffd838d91c94bdc7.reset/password/user/3f6e660c376c9fcaeaddeb50b0893d73e772100f.Install package using Composer.
$ composer require tpenaranda/aiditokens
Run migrations.
$ php artisan migrate
class User extends Model
{
use TPenaranda\Aiditokens\Traits\Tokens;
>>> $userModel->getToken();
=> "5cb0b0dddf8ae37a6e8066d4ffd838d91c94bdc7"
>>>
>>> $userModel->getToken($expireInHours = 2);
=> "efbbc5efa8e0838f58aa86f2f20a468af8262a43"
>>>
$user = User::firstByToken('5cb0b0dddf8ae37a6e8066d4ffd838d91c94bdc7');
=> App\User {#3214
id: 53,
first_name: "John",
last_name: "Doe",
created_at: "2019-11-15 07:22:59",
updated_at: "2019-11-15 07:23:04",
class User extends Model
{
use TPenaranda\Aiditokens\Traits\Tokens;
public function generateToken(): string
{
return str_random(); // Your custom logic goes here.
}
class RouteServiceProvider extends ServiceProvider
{
public function boot()
{
Route::pattern('userToken', '^.{40}$'); // Watch out this regex if you're using custom tokens.
Route::bind('userToken', function ($value) {
return User::firstByToken($value) ?? abort(404);
});
Route::get('users/{userToken}', 'UserController@get');
Happy coding!