Срок действия персонального токена Laravel не истекает - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь использовать паспорт Laravel и не знаю, нашел ли я ошибку или что-то упустил.

Контроллер входа:

    $user = $request->user();
    $tokenResult = $user->createToken('Personal Access Token');
    $token = $tokenResult->token;
    $token->expires_at = Carbon::now()->addWeeks(1);
    $token->save();

Итак, ясоздаю токен при входе пользователя в систему. В базе данных я вижу, что сгенерированный токен имеет поле expires_at: через одну неделю, так что это правильноНо если я изменю это значение на более старую дату, я все равно смогу использовать этот токен ...

Laravel просто игнорирует это поле? Почему?

Я провел свое исследование, но я немного запутался ... так много людей говорят, что токены не истекают или не истекают через 1 год. Но потом я нашел несколько сообщений с этим фрагментом:

public function boot(){
        $this->registerPolicies();

        Passport::routes();
        Passport::tokensExpireIn(Carbon::now()->addHours(24));
        Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
}

Я понимаю, что tokensExpireIn устанавливает поле expires_at, а refreshTokensExpireIn предназначен для обновления этого поля каждый раз, когда пользователь использует свой токен ...

Но еслиLaravel все равно не проверяет это поле, он бесполезен.

1 Ответ

0 голосов
/ 11 октября 2019

Вы также можете установить дату истечения срока действия для личных токенов

 Passport::personalAccessTokensExpireIn(now()->addMonths(1));

Вам также нужно будет регенерировать свои токены, поскольку у старых все еще будут даты истечения срока действия.

...