#php #laravel #traits #laravel-sanctum
Вопрос:
Возможно ли в LaravelSanctum создать собственный токен. В данный момент в файле признаков будет сгенерирована случайная строка HasApiTokens.php
.
Я перезаписал функцию createToken () (из HasApiToken.php) в моем AppModelsUser.php к этому:
public function createToken(string $myToken, Carbon $expiresIn, array $abilities = ['*'])
{
/** @var $token */
$token = $this->tokens()->create([
'name' => 'special-token',
'token' => hash('sha256', $myToken),
'abilities' => $abilities,
'expiresIn' => $expiresIn,
]);
return new NewAccessToken($token, $token->getKey().'|'.$myToken);
}
Я изменю, чтобы токен можно было вводить в качестве параметра, и добавлю метку времени с истекшим сроком действия. Но когда я запущу этот код, я получу следующую ошибку:
Too few arguments to function AppModelsMyToken::__construct(), 0 passed in E:PHP-Projectsexample-projectvendorlaravelframeworksrcIlluminateDatabaseEloquentConcernsHasRelationships.php on line 745 and exactly 2 expected`
at E:PHP-Projectscaseable-fullfilment-appappModelsMyToken.php:35
31▕ * @param LaravelSanctumPersonalAccessToken $accessToken
32▕ * @param string $plainTextToken
33▕ * @return void
34▕ */
➜ 35▕ public function __construct(PersonalAccessToken $accessToken, string $plainTextToken)
36▕ {
37▕ $this->accessToken = $accessToken;
38▕ $this->plainTextToken = $plainTextToken;
39▕ }
Я добавил новую модель токена, как она задокументирована в документе laravelsanctum. В чем я ошибаюсь?