0
Laravel在用戶表中需要至少60個字符的密碼字段。遷移到laravel中斷用戶表上的密碼字段,該字段長度爲32個字符
我們的舊模式有32個字符,並且產品中的所有現有密碼在加密後都是32個字符或更少。
將數據庫字段遷移到60個字符後,如果我們切換到laravel,則舊密碼無法驗證。
我們絕對可以提示用戶重置密碼,但我們必須先能夠驗證它們。這是一個問題。
我們該如何處理?尋找一些想法。
Laravel在用戶表中需要至少60個字符的密碼字段。遷移到laravel中斷用戶表上的密碼字段,該字段長度爲32個字符
我們的舊模式有32個字符,並且產品中的所有現有密碼在加密後都是32個字符或更少。
將數據庫字段遷移到60個字符後,如果我們切換到laravel,則舊密碼無法驗證。
我們絕對可以提示用戶重置密碼,但我們必須先能夠驗證它們。這是一個問題。
我們該如何處理?尋找一些想法。
您的舊系統和laravel正在使用不同的哈希方法。
如果您的舊系統有32個字符,可能是md5散列。
要將舊用戶轉換爲laravel的散列,您首先必須使用舊密碼登錄該用戶。登錄時,你必須使用舊的哈希系統(md5或其他,以及鹽)。用戶使用舊的哈希系統成功登錄後,請求他們重置密碼。現在,當你重新設置他們的舊密碼,使用Larvel的散列系統Hash::make()
你可以按照下面的步驟:
password
列重命名爲old_password
。old_password
是否爲空。如果它不是空的,那麼你必須使用舊的哈希方法來驗證用戶。使用old_password
列作爲用戶的密碼。password
列中。然後刪除old_password
列中的值。通過這種方式,您將爲用戶生成新的正確哈希,而無需用戶甚至意識到(無需他手動重置密碼)。old_password
列。另一種方法是爲所有用戶生成隨機密碼。當他們嘗試登錄時填寫失敗,然後他們可以使用他們的電子郵件地址重置密碼。