2016-09-27 74 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函數生成的隨機串指定的長度。此函數使用PHP的random_bytes功能:

您的令牌

mFqEE5PUS4ZlOdQ51WEomGqJ1vFQCzw6zumvvW8rkpBUclC161HtvK8LsXXP

有60個字母,我不知道爲什麼其他令牌少。

+0

重置密碼是否一樣? –