id
login
password
etc..
Таблица токенов
id
user_id
token
created_at
updated_at
Токен может передаваться как в заголовках, так и в параметрах.
Есть ли метод, для получения этого самого токена (необходим для logout пользователя)
Обычный logout не подходит, т.к. у одного пользователя может быть несколько токенов (авторизации на разных устройствах).
Второй вопрос: в какой момент лучше всего проверять протухшие токены, и удалять их из таблицы токенов?
Сейчас у меня это реализовано в методе findIdentityByAccessToken:
Код: Выделить всё
public static function findIdentityByAccessToken($token, $type = null)
{
//Очищаю все протухшие токены
Tokens::clearExpires();
$tokenModel = Tokens::findOne(['token' => $token]);
if ($tokenModel){
//Обновляем время доступа по токену (не нашел ни чего лучше, чем выставлять updated_at = 0,
//а в моделе Tokens через behaviors присваивается new Expression('NOW() at time zone \'utc\'')
$tokenModel->updated_at = 0;
$tokenModel->save();
return $tokenModel->user;
}
else
return false;
}