Срок действия токена авторизации паспорта Laravel истекает при создании нового токена

Я использую laravel 5.5 с паспортной аутентификацией для маршрутов API. Я использую токен на предъявителя. Проблема в том, что старый сгенерированный токен принимается вместо неаутентифицированного. Шаги:

  • создать один токен на предъявителя. Используй это. Работает нормально.
  • создайте еще один токен без выхода из системы, и он работает нормально.
  • теперь, если я использую первый созданный токен, он также работает. Это не должно работать, но это принято.

Есть ли способ добиться этого? Заранее спасибо.


person Nilesh    schedule 30.10.2017    source источник


Ответы (1)


Одно из возможных решений: проверьте перед созданием нового токена, существует ли старый, и удалите его. Сделать это:

Создайте модель с именем OauthAccessToken

Обновите свою модель пользователя следующим образом

/**
 * 1:n zu access token, we need to logout users
 *
 * @return \Illuminate\Database\Eloquent\Relations\HasMany
 */
public function accessTokens()
{
    return $this->hasMany(OauthAccessToken::class);
}

Теперь вы можете проверить это и удалить все токены пользователя.

if ($user->accessTokens->count() > 0) {
    $user->accessTokens()->delete();
}
person Matz    schedule 30.10.2017
comment
Привет, Матц, спасибо. Я получил это и удалил токен из oauth_access_tokens. Работает нормально. Разве мы не можем добиться этого, обновляя токены? - person Nilesh; 31.10.2017