手機登入 驗證碼設計

2021-09-19 20:51:33 字數 650 閱讀 4876

公司需要做乙個手機登入驗證碼的設計 

最初需求

手機每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 ...