我已經嘗試了幾天,但無法真正找到關于我正在嘗試做的事情的答案。
以注冊示例為例,其中發送了用于確認您的電子郵件的鏈接,然后在單擊該鏈接時確認帳戶。
我想實作這一點,以對公告發布進行一種驗證。
我嘗試以 symfony 驗證電子郵件功能為例,但在這種情況下,單擊鏈接時它使用的是經過身份驗證的用戶。就我而言,單擊鏈接的人在網站上沒有帳戶,因此不應進行身份驗證。
單擊郵件鏈接時,如何在不需要用戶身份驗證的情況下更改資料庫中的布林值,例如“is_confirmed”從 0 到 1?
謝謝
uj5u.com熱心網友回復:
您仍然需要進行身份驗證,但您將使用一次性令牌而不是用戶 ID 和密碼進行身份驗證。對于每條訊息:
- 生成唯一的不可猜測的字串,如 UUID v4。
- 為您希望令牌適用的未來多少分鐘/小時/天生成過期時間戳。
- 將令牌和過期時間戳保存在資料庫中,以便它以某種方式與相關記錄相關聯。這可能意味著向現有表添加兩列,或創建新的連接表。
- 向收件人生成一封電子郵件,包括一個嵌入了令牌的鏈接,例如http://example.com/approve?token=whatever或http://example.com/approve/whatever
- 創建 /approve 頁面。將其配置為不需要任何傳統的 Symfony 身份驗證。那么它應該:
- 查找提供的令牌。
- 驗證關聯的時間戳尚未過期。
- 執行您想要發生的任何程序。
- 從資料庫中擦除令牌和過期時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/461060.html
標籤:电子邮件
