1
正如標題中所說的,我想根據當前用戶生成一個隨機鏈接來進行電子郵件驗證和密碼修改。我認爲它有2個要求:在Symfony2中,我如何爲電子郵件驗證和密碼修改生成隨機鏈接?
它是隨機生成的
控制器在symfony中可以知道此鏈接對應於用戶。
正如標題中所說的,我想根據當前用戶生成一個隨機鏈接來進行電子郵件驗證和密碼修改。我認爲它有2個要求:在Symfony2中,我如何爲電子郵件驗證和密碼修改生成隨機鏈接?
它是隨機生成的
控制器在symfony中可以知道此鏈接對應於用戶。
控制器仍然需要知道有關該用戶那些未加密的東西,如UID。
除此之外,執行密碼重置的一種方法是發送有關用戶的其他信息的單向散列。因此,舉例來說,有一個功能可以執行類似如下操作:
function generateLink($user)
{
$hash = md5($user->email);
$url = '/reset-password/$uid/$hash';
return $url;
}
使用所需的任何散列函數,可能不推薦使用MD5。 接着,在另一端,這樣做:
function checkResetLink($uid, $hash)
{
$user = get_user($uid); // However you retrieve your user info
if($hash == md5($user->email)){
// Log in the user or do whatever you want.
}
}
如果你真的希望它是隨機生成的,你可能會產生一些隨機哈希值,並存儲在用戶的記錄,那麼當你選擇了它,使用uid檢索該隨機哈希,並檢查它是否相同。