diff --git a/html/login.html b/html/login.html index 665bd4d..f38950c 100644 --- a/html/login.html +++ b/html/login.html @@ -96,6 +96,12 @@ 立即注册 忘记密码 +
+ + 微信 + 微信登录 + +
@@ -113,6 +119,7 @@ let layerInstance = null; let currentCaptchaId = ""; let currentVerifyType = "captcha"; + let currentSlideToken = ""; let currentSlideUuid = ""; let currentSlideX = 0; @@ -142,6 +149,7 @@ function refreshCaptcha() { currentCaptchaId = ""; + currentSlideToken = ""; currentSlideUuid = ""; currentSlideX = 0; $("#captchaId").val(""); @@ -185,6 +193,9 @@ function completeSlideCaptcha(result) { const data = result || {}; const nested = data.data || {}; + currentSlideToken = + data.slideToken || data.token || data.verifyToken || + nested.slideToken || nested.token || nested.verifyToken || ""; currentSlideUuid = data.slideUuid || data.uuid || nested.slideUuid || nested.uuid || ""; currentSlideX = @@ -209,6 +220,7 @@ onSuccess: completeSlideCaptcha, onCancel: function () { currentSlideUuid = ""; + currentSlideToken = ""; currentSlideX = 0; }, onError: function (error) { @@ -274,6 +286,7 @@ } return { verifyType: "slide", + slideToken: currentSlideToken, slideUuid: currentSlideUuid, slideX: currentSlideX, }; diff --git a/html/reg.html b/html/reg.html index 2b112e8..e53035e 100644 --- a/html/reg.html +++ b/html/reg.html @@ -146,6 +146,7 @@ let layerInstance = null; let currentCaptchaId = ""; let currentVerifyType = "captcha"; + let currentSlideToken = ""; let currentSlideUuid = ""; let currentSlideX = 0; let pendingSmsAfterVerify = false; @@ -177,6 +178,7 @@ function refreshCaptcha() { currentCaptchaId = ""; + currentSlideToken = ""; currentSlideUuid = ""; currentSlideX = 0; $("#captchaId").val(""); @@ -218,6 +220,9 @@ function completeSlideCaptcha(result) { const data = result || {}; const nested = data.data || {}; + currentSlideToken = + data.slideToken || data.token || data.verifyToken || + nested.slideToken || nested.token || nested.verifyToken || ""; currentSlideUuid = data.slideUuid || data.uuid || nested.slideUuid || nested.uuid || ""; currentSlideX = @@ -247,6 +252,7 @@ onSuccess: completeSlideCaptcha, onCancel: function () { currentSlideUuid = ""; + currentSlideToken = ""; currentSlideX = 0; }, onError: function (error) { @@ -342,6 +348,7 @@ } return { verifyType: "slide", + slideToken: currentSlideToken, slideUuid: currentSlideUuid, slideX: currentSlideX, }; @@ -408,6 +415,8 @@ function buildRegisterData() { const params = new URLSearchParams(window.location.search); + const inviteCode = + params.get("inviteCode") || params.get("referralCode") || ""; const referrerId = (referralPreviewData && (referralPreviewData.referrerId || @@ -416,6 +425,7 @@ params.get("referrerId") || params.get("pid") || 0; + const invitePayload = inviteCode ? { inviteCode: inviteCode } : {}; return Object.assign( { phoneNumber: $("#phone").val().trim(), @@ -424,6 +434,7 @@ nickname: $("#nickname").val().trim(), referrerId: referrerId, }, + invitePayload, getVerifyParams(false) || {}, ); } diff --git a/html/repwd.html b/html/repwd.html index 664ebe5..6433349 100644 --- a/html/repwd.html +++ b/html/repwd.html @@ -127,6 +127,7 @@ let layerInstance = null; let currentCaptchaId = ""; let currentVerifyType = "captcha"; + let currentSlideToken = ""; let currentSlideUuid = ""; let currentSlideX = 0; let pendingSmsAfterVerify = false; @@ -157,6 +158,7 @@ function refreshCaptcha() { currentCaptchaId = ""; + currentSlideToken = ""; currentSlideUuid = ""; currentSlideX = 0; $("#captchaId").val(""); @@ -198,6 +200,9 @@ function completeSlideCaptcha(result) { const data = result || {}; const nested = data.data || {}; + currentSlideToken = + data.slideToken || data.token || data.verifyToken || + nested.slideToken || nested.token || nested.verifyToken || ""; currentSlideUuid = data.slideUuid || data.uuid || nested.slideUuid || nested.uuid || ""; currentSlideX = @@ -227,6 +232,7 @@ onSuccess: completeSlideCaptcha, onCancel: function () { currentSlideUuid = ""; + currentSlideToken = ""; currentSlideX = 0; }, onError: function (error) { @@ -312,6 +318,7 @@ } return { verifyType: "slide", + slideToken: currentSlideToken, slideUuid: currentSlideUuid, slideX: currentSlideX, }; @@ -334,7 +341,7 @@ const verifyParams = getVerifyParams(true); if (!verifyParams) return; $("#sendSmsBtn").prop("disabled", true); - AuthPageUtil.sendSmsCode( + AuthPageUtil.sendForgotPasswordSmsCode( Object.assign( { phoneNumber: $("#phone").val().trim() }, verifyParams, @@ -384,14 +391,36 @@ function submitResetPassword() { const payload = buildResetData(); - console.warn( - "找回密码提交参数已准备好,但最新接口文档暂未提供提交接口:", - payload, - ); - layerInstance.alert( - "最新接口文档暂未提供找回密码提交接口。页面流程、短信验证码和验证参数已按参考项目准备好,等后端补接口后即可接入提交。", - { title: "暂不能提交" }, - ); + $("#resetBtn").prop("disabled", true).text("重置中..."); + ApiClient.post(ApiClient.API.authForgotPasswordReset, payload, { + publicRequest: true, + }) + .then(function (res) { + if (ApiClient.isSuccess(res)) { + layerInstance.msg( + "密码重置成功,即将前往登录", + { icon: 1, time: 1200 }, + function () { + window.location.href = "login.html"; + }, + ); + return; + } + layerInstance.msg((res && res.msg) || "密码重置失败,请稍后重试", { + icon: 2, + }); + refreshCaptcha(); + }) + .catch(function (error) { + layerInstance.msg( + "密码重置请求失败:" + ((error && error.message) || "网络错误"), + { icon: 2 }, + ); + refreshCaptcha(); + }) + .finally(function () { + $("#resetBtn").prop("disabled", false).text("确认重置"); + }); } layui.use(["layer", "jquery"], function () { diff --git a/html/social-callback.html b/html/social-callback.html new file mode 100644 index 0000000..5de6a02 --- /dev/null +++ b/html/social-callback.html @@ -0,0 +1,904 @@ + + + + + + 3D研究室 - 微信登录 + + + + + + +
+
+
3D研究室
+
微信登录
+
正在处理微信授权,请稍候...
+
+ + 正在登录 +
+
+ +
+
+ + +
+ +
+ +
+ + +
+
+ + + +
+ 该微信还没有绑定手机号,请先完成绑定。手机号不存在时会创建账号,已存在时会绑定到该账号。 +
+
+ +
+ 返回登录 + +
+
+
+ + + + diff --git a/html/usercenter.html b/html/usercenter.html index cb087af..9bd989f 100644 --- a/html/usercenter.html +++ b/html/usercenter.html @@ -76,6 +76,26 @@
未登录
普通会员
+
+
+
+ 微信 +
+
+
微信账号
+
检测中...
+
+
+
+ +
+
+
+
+ 微信 +
+
+
微信账号
+
正在检测绑定状态...
+
+
+
+
+ +
@@ -370,10 +411,43 @@ ↑ +
+
+
+
+
绑定微信
+
绑定后可使用微信快捷登录当前账号
+
+ +
+
+
+ + +
+
+ +
+ + +
+
+
+ + +
+
当前接口需要微信授权参数、手机号、短信验证码和密码。
+ +
+
+