我在用戶表中有remeber_token
字段。我很困惑它是如何產生的?因爲我可以在兩個不同的用戶的數據庫中看到兩種不同類型的令牌。記憶標記是如何產生的?
mFqEE5PUS4ZlOdQ51WEomGqJ1vFQCzw6zumvvW8rkpBUclC161HtvK8LsXXP
和其他種類的:
78x6c35esh2Ya0g4fb1d9
怎麼會這樣呢?並記住令牌和忘記密碼令牌生成不同的算法?
我在用戶表中有remeber_token
字段。我很困惑它是如何產生的?因爲我可以在兩個不同的用戶的數據庫中看到兩種不同類型的令牌。記憶標記是如何產生的?
mFqEE5PUS4ZlOdQ51WEomGqJ1vFQCzw6zumvvW8rkpBUclC161HtvK8LsXXP
和其他種類的:
78x6c35esh2Ya0g4fb1d9
怎麼會這樣呢?並記住令牌和忘記密碼令牌生成不同的算法?
我看着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函數生成的隨機串指定的長度。此函數使用PHP的random_bytes功能:
您的令牌
mFqEE5PUS4ZlOdQ51WEomGqJ1vFQCzw6zumvvW8rkpBUclC161HtvK8LsXXP
有60個字母,我不知道爲什麼其他令牌少。
重置密碼是否一樣? –
您的意思是兩個用戶的記憶令牌長度不同,或者記住的令牌長度與重置令牌的長度不同? –
@sven不記得令牌和重置令牌更新在同一個'remember_token'字段? –
如果我沒記錯,你有一個名爲password_resets的表https://laravel.com/docs/5.2/authentication#resetting-passwords –