2016-09-27 2 views
2

У меня есть remeber_token поле в таблице пользователей. И я в значительной степени запутался в том, как он сгенерирован? потому что я вижу два разных типа токенов в базе данных для двух разных пользователей.Как сгенерирован токен?

mFqEE5PUS4ZlOdQ51WEomGqJ1vFQCzw6zumvvW8rkpBUclC161HtvK8LsXXP

, а другой вид:

78x6c35esh2Ya0g4fb1d9 

Как это так? И помните токен и забыл токен пароля, сгенерированный с помощью разных алгоритмов?

+0

Вы имеете в виду, что у двух пользователей разная длина запоминаемых токенов или что у токена у вас разная длина, чем токен сброса? –

+0

@sven не помнят токена и сброса токена, обновленного в том же поле 'remember_token'? –

+0

Если я правильно помню, у вас есть таблица с именем password_resets https://laravel.com/docs/5.2/authentication#resetting-passwords –

ответ

1

Я смотрел into the code и имеет следующую функцию, чтобы генерировать маркер

protected function refreshRememberToken(AuthenticatableContract $user) 
{ 
    $user->setRememberToken($token = Str::random(60)); 
    $this->provider->updateRememberToken($user, $token); 
} 

от the docs:

str_random()

Функция str_random генерирует случайную строку указанную длину. Эта функция использует функцию random_bytes РНР:

ваш маркер

mFqEE5PUS4ZlOdQ51WEomGqJ1vFQCzw6zumvvW8rkpBUclC161HtvK8LsXXP

имеет 60 букв, я не знаю, почему другой маркер меньше.

+0

это то же самое для сброса пароля? –