MIF_E31231623/website/wisata_web/app/Models/PersonalAccessToken.php

49 lines
974 B
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Str;
class PersonalAccessToken extends Model
{
protected $fillable = [
'user_id',
'name',
'token',
'abilities',
'last_used_at',
];
protected $hidden = [
'token',
];
protected function casts(): array
{
return [
'abilities' => 'array',
'last_used_at' => 'datetime',
];
}
public static function issueFor(User $user, string $name = 'mobile-app'): string
{
$plainTextToken = Str::random(64);
$user->tokens()->create([
'name' => $name,
'token' => hash('sha256', $plainTextToken),
'abilities' => ['*'],
]);
return $plainTextToken;
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
}