公司需要做乙個手機登入驗證碼的設計
最初需求
手機每1min種可以請求簡訊api傳送一次 驗證碼4位數字 數字少主要是產品考慮使用者體驗的問題
驗證碼5min內有效
重點關注
對輸入手機號的使用者**進行判斷 防止惡意使用者暴力輸入
前端 傳送驗證碼前可以讓使用者手動輸入驗證框 防止惡意輸入
防止驗證碼被暴力破解進而登入系統
前端 嘗試一定次數後 需要輸入圖形驗證碼才能進行登入 並且圖形驗證碼也設定過期時間 過期需要重新輸入圖形驗證碼
後端 redis儲存手機號碼和次數的嘗試次數的key/value對 嘗試一定次數後 該手機號不能再進行驗證
考慮網路不暢通的情況
由於網路不暢通,使用者可能在驗證碼有效期間多次請求伺服器 使用者收到的每乙個的驗證碼在有效期內都應該能夠登入系統
對短訊息傳送必須嚴格許可權控制
簡訊驗證碼不要直接加入在日誌系統中
一旦使用者登入 後端redis中的該手機號碼的value全部失效
登入驗證碼
生成驗證碼 指定驗證碼的長度 public static string createvalidatecode int length 生成隨機數字 for int i 0 i length i 抽取隨機數字 for int i 0 i length i 生成驗證碼 for int i 0 i leng...
語音驗證碼api 手機接聽驗證碼
語音驗證碼api,通過手機接聽驗證碼實現驗證功能。介面名稱 語音驗證碼api 介面平台 api介面 支援格式 json xml 請求方式 http get post 請求示例 您申請的 key valicode 12345678 to 18912312312 playtimes 3 請求引數說明 名...
傳送手機驗證碼
import random import string import time import hashlib from urllib import parse,request defsend sms 請求的url api 準備headers中的引數 最大128個字元的隨機字串 nonce join ...