PHP 登入系統中用於安全「記住我」功能的持久Cookie
簡介
簡介在PHP 登入系統中實現「記得我」功能需要在使用者的瀏覽器。此 cookie 允許使用者即使在關閉瀏覽器或重新啟動裝置後仍保持登入狀態。
資料庫結構CREATE TABLE `auth_tokens` ( `id` integer(11) not null UNSIGNED AUTO_INCREMENT, `selector` char(12), `token` char(64), `userid` integer(11) not null UNSIGNED, `expires` datetime, PRIMARY KEY (`id`) );要安全地儲存「記住我」信息,請在你的資料庫:
選擇器和令牌字段將用於存儲記住我
登錄後setcookie( 'remember', $selector . ':' . base64_encode($authenticator), time() + 864000, // expires in 10 days '/', 'yourdomain.com', true, // TLS-only true // http-only );當用戶登錄並選擇“記住我”選項時,生成一個隨機選擇器(12 個字元)和一個驗證器(33 個字元) bytes) 使用random_bytes() 函數或類似的方法來確保隨機性。 使用以下內容設定記住我 cookie code:
將選擇器、雜湊驗證器、使用者 ID 和過期時間插入 auth_tokens 表。
頁面載入時重新驗證如果雜湊匹配,則透過設定會話資料並重新產生登入令牌來使用戶登入。
以上是如何使用持久 Cookie 在 PHP 登入系統中安全地實現「記住我」功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!