手機簡訊碼使用流程
手機驗證碼容易被人惡意使用,為了防止簡訊驗證碼被惡意使用,使用者應該盡量按照下面的步驟,加上圖形驗證碼
1. 後台生成圖形驗證碼和s值
2. 使用者將手機號+圖形驗證碼+s值送往後台,如果s值+圖形驗證碼通過驗證,則傳送簡訊驗證碼,並生成k值,作為下一步的憑證。
3. 使用者收到簡訊碼後,使用簡訊驗證碼+k值送入伺服器,對簡訊驗證碼進行驗證。驗證通過後將k值設定為1,表示簡訊驗證通過。
4. 客戶端將具體的業務請求引數+k值送回伺服器,伺服器檢查k值對應的值是否為1,如果為1,再進行具體的業務邏輯處理,否則返回簡訊驗證碼錯誤。
為了更方便地使用簡訊驗證碼,api組可以提供一組通用的api。應用者只需要關注步驟四即可。
所有的介面成功均返回:
,」success」:1}
如果失敗,均返回:
, 「success」:0}
下面介面定義時的返回值僅對成功時data部分進行定義
1. 生成驗證碼
介面:/pub/security/imgvcode/get
引數:無
「imgvcode」: " vcode/get?id=***x"
「s」:「******************」
2. 傳送手機驗證碼
介面:/pub/security/phonevcode/send
引數: s (步驟1的隨機數)、imgvcode(使用者輸入的圖形驗證碼)、phone(手機號)
返回值:k: 32位隨機字串
「k」:「******************」
處理邏輯:
ø 檢查驗證碼的驗證是否超過呼叫限制次數(最多3次,超過後直接銷毀s值)
ø 檢查s對應的imgvcode是否正確(驗證使用者輸入的圖形驗證碼是否正確)
ø 檢查手機號傳送驗證碼是否超過呼叫限制次數(30分鐘內最多3次)
ø 給手機號phone傳送簡訊驗證碼phonevcode,並更新redis中phonechk_對應的傳送次數
ø 生成乙個32位的隨機字串k,將$->phone+phonevcode +是否驗證通過+驗證次數儲存在redis中(有效期 2分鐘)
3. 驗證手機驗證碼
介面: /pub/security/phonevcode/verify
引數: k(步驟2中的隨機數), phonevcode(使用者輸入的手機驗證碼)
返回: k(步驟2中的k),ok(1表示簡訊驗證碼校驗通過,0表示不通過)
「k」: " *********xx
"「ok」:1
處理邏輯:
ø 檢查使用者輸入的手機驗證碼是否正確
ø 檢查相同k呼叫次數是否超過呼叫次數限制(最多3次,超出3次後銷毀k)
ø 更新k_$中$欄位為1,表示簡訊驗證通過。
4. 具體業務邏輯介面
介面: /***/***/***
引數: k(步驟2中的隨機數)、其它業務引數
返回:處理邏輯:
ø 檢查k值是對應的字段是否為1,如果不為1,直接返回。
ø 繼續處理其他具體的業務邏輯。
主要使用redis,不使用資料。
key取值
有效期備註
s_$$\t$
4位圖形驗證碼+驗證次數
10分鐘
步驟1生成,步驟2使用
k_$$\t$\t$
\t$手機號碼+手機驗證碼+是否通過驗證(通過驗證為1,沒有通過為0)+驗證次數(最多驗證3次)
10分鐘
步驟2生成,步驟3使用,
步驟3修改,步驟4使用
phonechk_
$手機號傳送驗證碼的次數
30分鐘
步驟2生成和使用
php隨機生成手機簡訊驗證碼
該文章主要說明 在進行手機驗證碼時,生成驗證碼的方法 方法一 產生隨機數串 param integer len 隨機數字長度 return string public function randstring len 6 方法二 產生隨機數串 param integer len 隨機數字長度 retu...
手機簡訊驗證碼真的安全嗎?
手機的蓬勃發展,衍生出來眾多行業,也讓原本功能單一的手機號做出極大的改變。如今似乎每個人的手機號都繫結了或多或少的各種賬號,手機繫結的東西越來越多,涉及到的重要的東西也越來越多,例如像銀行卡繫結手機號,支付寶等等能與資金掛上鉤的。如今手機繫結最主要的表現方式就是通過簡訊驗證碼來證明自己的身份,驗證的...
手機簡訊控制家電
手機簡訊控制家電 想在未進家門時,房間就為你預備熱水嗎?如果你忘記帶鑰匙怎麼辦?一條簡訊,就可以解決問題。在第20屆全國青少年創新科技大賽的布展會場,澳門工聯職業技術中學的陳瑜勇同學正在精心除錯他的發明裝置 遙距控制家居系統。發條簡訊就可命令家電工作 陳瑜勇同學是此次創新科技大賽澳門代表隊的參賽選手...