<?php
namespace Laravel\Passport;
use Illuminate\Database\Eloquent\Model;
class Token extends Model
{
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'oauth_access_tokens';
/**
* The "type" of the primary key ID.
*
* @var string
*/
protected $keyType = 'string';
/**
* Indicates if the IDs are auto-incrementing.
*
* @var bool
*/
public $incrementing = false;
/**
* The guarded attributes on the model.
*
* @var array
*/
protected $guarded = [];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'scopes' => 'array',
'revoked' => 'bool',
'expires_at' => 'datetime',
];
/**
* Get the client that the token belongs to.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function client()
{
return $this->belongsTo(Passport::clientModel());
}
/**
* Get the user that the token belongs to.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function user()
{
$provider = config('auth.guards.api.provider');
$model = config('auth.providers.'.$provider.'.model');
return $this->belongsTo($model, 'user_id', (new $model)->getKeyName());
}
/**
* Determine if the token has a given scope.
*
* @param string $scope
* @return bool
*/
public function can($scope)
{
if (in_array('*', $this->scopes)) {
return true;
}
$scopes = Passport::$withInheritedScopes
? $this->resolveInheritedScopes($scope)
: [$scope];
foreach ($scopes as $scope) {
if (array_key_exists($scope, array_flip($this->scopes))) {
return true;
}
}
return false;
}
/**
* Resolve all possible scopes.
*
* @param string $scope
* @return array
*/
protected function resolveInheritedScopes($scope)
{
$parts = explode(':', $scope);
$partsCount = count($parts);
$scopes = [];
for ($i = 1; $i <= $partsCount; $i++) {
$scopes[] = implode(':', array_slice($parts, 0, $i));
}
return $scopes;
}
/**
* Determine if the token is missing a given scope.
*
* @param string $scope
* @return bool
*/
public function cant($scope)
{
return ! $this->can($scope);
}
/**
* Revoke the token instance.
*
* @return bool
*/
public function revoke()
{
return $this->forceFill(['revoked' => true])->save();
}
/**
* Determine if the token is a transient JWT token.
*
* @return bool
*/
public function transient()
{
return false;
}
}
If you encounter any issues or need assistance, please reach out to our dedicated developer support team Contact Us
Thank you for choosing Kueue Pay Payment Gateway Solutions! We look forward to seeing your integration thrive and provide a seamless payment experience for your valued customers.