rails中用戶激活和密碼重設

只是記錄一下思路,具體實現(xiàn)可參考rails tutorial第10章節(jié),非常詳細。
用戶激活

  1. 在注冊的時候,隨機生成一個唯一的token
  2. 然后根據(jù)token生成一個加密的字符串存儲在數(shù)據(jù)庫中activation_digest
  3. 同時生成一個鏈接(該鏈接中包含剛剛生成的token和用戶的email),發(fā)送到用戶的郵箱中。
  4. 當用戶打開該鏈接時,判斷鏈接中傳過來的emailtoken是否正確,如果正確,則激活用戶并登錄。

密碼重設

  1. 通過views,獲得忘記登錄密碼的郵箱
  2. 隨機生成一個token
  3. 根據(jù)token生成一個加密的字符串存儲在數(shù)據(jù)庫中reset_digest,同時還生成一個reset_sent_at時間,用來判斷reset_digest的過期時間
  4. 生成一個鏈接(包含剛剛生成的token和用戶的email),發(fā)送到用戶的郵箱中。
  5. 用戶打開鏈接后,得到一個重新輸入密碼的頁面(該頁面需要包含emailtoken的屬性,以便后續(xù)的操作。因為token是公開的,所以可以顯示在url中,email則可以通過hidden_tag_field來隱藏顯示
  6. 用戶提交后,判斷兩次密碼是否都為空,判斷emailtoken是否正確,判斷用戶是否是激活用戶,再判斷reset_diget是否過期。如果都正確,則密碼重設成功。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 背景: 最近比較閑,想學習ruby on rails 于是找到了https://www.railstutorial...
    pingpong_龘閱讀 1,077評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評論 19 139
  • devise是一個很好的用戶登錄gem。但還是想自己寫個“輪子”,一則本來就是在學習rails,二則是了解了用戶登...
    kamionayuki閱讀 6,403評論 2 9
  • 22年12月更新:個人網(wǎng)站關停,如果仍舊對舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,435評論 22 257
  • 用過微信網(wǎng)頁版的人應該都清楚網(wǎng)頁登陸的流程,大致描述一下這個過程: 打開網(wǎng)頁版登陸鏈接 頁面會顯示一個二維碼 用微...
    UncleYee閱讀 2,203評論 0 4

友情鏈接更多精彩內(nèi)容