BastionSSO/app/Models/OauthRefreshToken.php

59 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class OauthRefreshToken extends Model
{
protected $fillable = [
'jti',
'token_hash',
'authorization_id',
'user_id',
'client_id',
'previous_refresh_token_id',
'replaced_by_refresh_token_id',
'expires_at',
'used_at',
'replayed_at',
'revoked_at',
];
public function authorization(): BelongsTo
{
return $this->belongsTo(OauthAuthorization::class, 'authorization_id');
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function client(): BelongsTo
{
return $this->belongsTo(OauthClient::class, 'client_id');
}
public function previousToken(): BelongsTo
{
return $this->belongsTo(OauthRefreshToken::class, 'previous_refresh_token_id');
}
public function replacedByToken(): BelongsTo
{
return $this->belongsTo(OauthRefreshToken::class, 'replaced_by_refresh_token_id');
}
protected function casts(): array
{
return [
'expires_at' => 'datetime',
'used_at' => 'datetime',
'replayed_at' => 'datetime',
'revoked_at' => 'datetime',
];
}
}