php發送驗證碼後的驗證碼一般存放在哪裡的呢?

來源:互聯網
上載者:User
在使用郵箱進行註冊驗證、密碼找回的時候,會向使用者的郵箱發送驗證碼,然後通過比對使用者郵箱的驗證碼來php後端發送後儲存的驗證碼進行註冊狀態認證,密碼找回等功能。想問的是php向使用者郵箱發送的驗證碼是儲存在哪裡的呢?是mysql資料庫、redis資料庫、session還是其他的方式。

回複內容:

在使用郵箱進行註冊驗證、密碼找回的時候,會向使用者的郵箱發送驗證碼,然後通過比對使用者郵箱的驗證碼來php後端發送後儲存的驗證碼進行註冊狀態認證,密碼找回等功能。想問的是php向使用者郵箱發送的驗證碼是儲存在哪裡的呢?是mysql資料庫、redis資料庫、session還是其他的方式。

發送驗證碼以後,允許使用者可以在另外的頁面進行下一步操作,那麼就可能會是另外一個session,所以儲存在同一個session不合適。

發送驗證碼以後,也允許使用者有一定的操作時限,比如24小時內有效。那就得保障使用者24小時內輸入同一個驗證碼,必須能用。一般 redis 只是作為緩衝資料庫,不進行持久化,重啟會導致儲存的資料丟失,大量的緩衝資料也可能會覆蓋舊的資料,那驗證碼的可用性也得不到保障。

所以,儲存在一個能夠持久話的資料庫裡,才是比較穩妥的辦法。Mysql 是可以的,當然Redis也能持久化

存資料庫就行,設定個時間欄位用來判斷是否到期

建議還是儲存資料庫裡面/發獃 好好設計 展示你才華的時間到了

mysql資料庫。因為你可能在24小時內都有效。PHP程式員,雷雪松的個人部落格

一般都存在資料庫,在發送驗證碼的時候寫入資料庫等,並且cron任務(CloudMonitor也行,規定時間清理到期驗證碼),使用者驗證操作完後更新欄位值(比如改完密碼了,update set validate=false ...或者直接delete這行),

不推薦存在session,因為換個瀏覽器或者關閉瀏覽器就失效了,體驗極差(我的小站就是用這方式,有時候驗證碼發送慢了點直接無效,需要設定php.ini把session 生命週期改大點,當然也可以設定緩衝,不推薦不推薦)
小站用MySQL。

需要看你驗證碼授權的是什麼操作,如果該操作較為敏感,從安全性考慮,建議放在Session中,以保證操作人和驗證碼輸入者是同一個人。

這個問題,得根據你應用的情境需求出發吧,一般找回密碼發送的驗證碼,驗證碼都會有到期的時間,比如10-15分鐘驗證碼就失效,而不是一直有效,這樣安全係數就會降低。所以,一般使用 cookie memcache redis來做儲存都是可以,如果需要長期不到期,就使用mysql來儲存,但是這個方式不建議

nosql和資料庫都行吧,我們註冊和找回密碼的簡訊驗證碼通過索引值對形式存memcache,有效值是半個小時,時間過了自動失效了

這個驗證碼一般都是存cache的 cache的類型你自己根據需要配置了 file memcache都可以 最後就是驗證碼都會設定一個到期時間 到期後緩衝系統會自動刪除...

最簡單的就是存在session裡 但是多伺服器的情況下涉及到session共用 這時候可以選擇redis memcache這樣的nosql 也可以選擇mysql 推薦使用nosql 正常情況下記憶體要比磁碟快 也可以直接修改php.ini的配置把session的驅動修改為redis即可

方案1: 以Map形式直接放記憶體,key是使用者的唯一標示,定時清除到期的驗證碼。
方案2: Redis,資料的持久化和到期什麼的就不用自己處理,依賴redis即可。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.