日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手机验证码登录

發布時間:2023/12/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手机验证码登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

手機驗證碼登錄

符號說明:

[]:表示可選或某些條件下流程。

需求說明:

用戶可在登錄頁面使用手機驗證碼登錄,若該手機號未綁定則輸入驗證碼后還需輸入用戶賬號密碼進行綁定,綁定后則成功使用驗證碼登錄。

用戶可在控制臺進行新增、修改、刪除綁定手機號的操作。每個用戶最多綁定兩個手機號。

1.流程分析

a.輸入手機號點擊發送驗證碼 —> b.輸入驗證碼點擊確認按鈕 —> [c.未綁定的手機號需要綁定到用戶]

每一步都需要向后臺發送一個請求,三個請求組成一個流程。通過Redis保存請求間的聯系。關于SpringMVC集成Redis可參考文章:Redis單點與集群連接。

ps:為什么要使用Redis? Redis存取方便,性能更好,并可以方便的控制對象的存活時間。

直接使用短信驗證碼登錄,新綁定手機號,與修改手機號主要流程相同但部分細節方面需要進行不同的處理,使用策略模式實現不同細節的處理。

2.代碼邏輯

2.1 Controller層

2.1.1 登錄頁面發送驗證碼接口。對應流程a。參數為手機號,[是否為修改綁定的標識],[舊手機號碼(若為修改綁定則必傳)]。發送驗證碼到手機,接口返回一個隨機數和一個標識是否首次綁定

前端根據此標識調用不同接口,若已綁定過則調用2.1.2接口獲取登錄成功后的字段(如token信息);若未綁定則調用2.1.3接口進行綁定操縱。

后臺可根據是否為修改綁定,是否為首次綁定調用不同的策略。具體策略下文細講。

ps:發送驗證碼接口可生成一個隨機數返回給前端,隨機數作為key存放在Redis中,value中存放如手機號等校驗驗證碼時需要的信息。

2.1.2 驗證驗證碼接口。參數為驗證碼,接口2.1.1生成的隨機數,其他登錄所需校驗參數。接口驗證驗證碼是否正確。

若驗證碼正確則返回登錄成功后的字段(如token)。

2.1.3 驗證驗證碼接口。參數為驗證碼,接口2.1.1生成的隨機數。返回一個隨機數。

接口驗證驗證碼是否正確,若驗證碼正確則生成隨機數作為key存放在Redis中,value為手機號等信息。

2.1.4 綁定用戶接口。參數為 用戶名,密碼,接口2.1.3生成的隨機數,[是否使用改手機號登錄標識,不傳默認為false],[其他登錄所需校驗參數]。

校驗通過后,將手機號存入數據庫與用戶關聯。若登錄標識為true,則返回登錄成功后的字段(如token)。

2.2 Service層

Service層類圖如下

抽象類提供了protected訪問權限的公共方法(generateVC;verifyVC;userLogin());子類可按需調用。子類實現抽象方法實現每種情景下的訪問細節。Controller層根據不同情況調用不同策略。

將我實現的手機驗證碼登錄流程做個總結,希望有大佬可以指出其中的不足。

總結

以上是生活随笔為你收集整理的手机验证码登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。