驗證碼登錄(驗證碼登錄安全嗎)
前沿拓展:
驗證碼登錄
咨詢記錄 · 回答于2021-12-03 驗證碼登錄請求過于頻繁 以微信為例,微信驗證碼頻繁在1到2個小時恢復,如果自身并沒有頻繁登錄,登錄微信出現**作太頻繁,請稍后再試可能是因為網絡不穩定,或者異地登錄。
前面說到調用獲取驗證碼接口后,會向我們的郵箱發送驗證碼,并且接口會返回一個captchaSendToken。下一步就是使用驗證碼來進行登錄,進行登錄之前需要調用接口/webroot/decision/captcha/check來驗證我們輸入的驗證碼,代碼如下:
var checkCaptcha = function () { $.ajax({ url: "/webroot/decision/captcha/check", type: "POST", contentType: "application/json", data: JSON.stringify({ "token": captchaSendToken, "captcha": $("#_capatacode").val(), "validity": -1 }), dataType: "json", cache: !1, async: !0, error: function (err) { console.log(err) }, complete: function (e, t) { console.log(e.responseText) if ("success" == t) { data = JSON.parse(e.responseText) console.log(data) loginByCaptcha(); } } }) }
/webroot/decision/captcha/check接口對應的后端代碼為:
package com.fr.plugin.controller;import com.fr.decision.webservice.Response;import com.fr.decision.webservice.annotation.LoginStatusChecker;import com.fr.decision.webservice.bean.authentication.LoginCaptchaBean;import com.fr.decision.webservice.v10.login.LoginService;import com.fr.third.springframework.stereotype.Controller;import com.fr.third.springframework.web.bind.annotation.RequestBody;import com.fr.third.springframework.web.bind.annotation.RequestMapping;import com.fr.third.springframework.web.bind.annotation.RequestMethod;import com.fr.third.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@Controller@LoginStatusChecker( required = false //不需要驗證是否登錄)public class CaptchaController { @RequestMapping( value = {"/captcha/info"}, method = {RequestMethod.GET} ) @ResponseBody public Response getLastLoginInfo(HttpServletRequest req, HttpServletResponse res) throws Exception { return Response.success(); } @RequestMapping( value = {"/captcha/check"}, method = {RequestMethod.POST} ) @ResponseBody public Response checkLoginCaptcha(HttpServletRequest req, HttpServletResponse res, @RequestBody LoginCaptchaBean loginCaptchaBean) throws Exception { LoginService.getInstance().checkLoginCaptcha(loginCaptchaBean); return Response.success(); }}
調用LoginService.getInstance().checkLoginCaptcha(loginCaptchaBean)來對驗證碼進行核對,必須經過這一步,否則登錄不成功。最后進行真正的登錄,使用/webroot/decision/login/captcha接口來登錄,代碼如下:
var loginByCaptcha = function () { $.ajax({ url: "/webroot/decision/login/captcha", type: "POST", contentType: "application/json", data: JSON.stringify({ "token": captchaSendToken, "captcha": $("#_capatacode").val(), "validity": -1 }), dataType: "json", cache: !1, async: !0, error: function (err) { console.log(err) }, complete: function (e, t) { console.log(e.responseText) if ("success" == t) { data = JSON.parse(e.responseText) console.log(data) document.cookie = "fine_auth_token=" + data.data.accessToken + "; path=/"; // $.cookie('fine_auth_token', data.data.accessToken, { path: '/' }); window.location.href = data.data.originUrlResponse.originUrl } } }) }
登錄成功后就會進入主界面了。最后,驗證碼登錄其實有兩種,一種是郵箱接收驗證碼,一種是手機短信,他倆的不同實現方式兩個地方:1 type不同,郵箱是email,手機是mobile2 都需要自己來實現發送邏輯,驗證碼發送到郵箱,驗證碼發送到手機短信,都需要通過擴展來實現,手機通過擴展**SServiceProvider,郵箱通過擴展EmailServiceProvider
拓展知識:
驗證碼登錄
手機微信短信驗證碼登陸失敗可能是因為網絡問題,具體解決方法步驟如下:
1、當出現手機微信短信驗證碼登陸失敗的情況時,點擊界面內的“登錄遇到問題”選項。
2、單擊“使用短信驗證登陸”選項,再在如下的界面內輸入自己的手機號碼,再單擊下一步。
3、單擊下一步后,在彈出的窗口內找到并單擊“好”選項即可成功使用手機短信驗證碼登錄微信并解決手機微信短信驗證碼登陸失敗的問題。
本回答被網友采納
驗證碼登錄
可能是網絡問題。
具體解決辦法如下:
1 、顯示登陸失敗后點擊“登陸遇到問題?”。
2 、點擊“用短信驗證登陸”,在下面窗口輸入手機號點擊“下一步”。
3 、確認手機號點擊“確定”。
4 、在下面窗口輸入短信發來的驗證碼。
5、在下面窗口設置新密碼點擊“完成” 用所顯示的微信號和新密碼重新登陸一次就可以登陸成功了。
本回答被網友采納
驗證碼登錄
驗證碼登錄
690471啥意思
原創文章,作者:九賢互聯網實用分享網編輯,如若轉載,請注明出處:http://www.uuuxu.com/20220813464433.html