From 3ae1f99374bc7d3fffffcc0ec48fe38ba65502f2 Mon Sep 17 00:00:00 2001
From: 18631081161 <2088094923@qq.com>
Date: Wed, 25 Mar 2026 23:44:30 +0800
Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E6=9C=BA=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../admin-web/package-lock.json | 49 ++++++++--
.../Controllers/AuthController.cs | 3 +-
.../Interfaces/IAuthService.cs | 94 +++++++++----------
.../MiAssessment.Core/Services/AuthService.cs | 36 ++++++-
.../Models/Auth/WechatLoginRequest.cs | 6 ++
uniapp/manifest.json | 2 +-
uniapp/pages/assessment/info/index.vue | 3 +-
7 files changed, 131 insertions(+), 62 deletions(-)
diff --git a/server/MiAssessment/src/MiAssessment.Admin/admin-web/package-lock.json b/server/MiAssessment/src/MiAssessment.Admin/admin-web/package-lock.json
index 19a8388..a0a491c 100644
--- a/server/MiAssessment/src/MiAssessment.Admin/admin-web/package-lock.json
+++ b/server/MiAssessment/src/MiAssessment.Admin/admin-web/package-lock.json
@@ -186,6 +186,7 @@
}
],
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=18"
},
@@ -209,6 +210,7 @@
}
],
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -1053,6 +1055,7 @@
"resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz",
"integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/lodash": "*"
}
@@ -1078,6 +1081,7 @@
"resolved": "https://registry.npmjs.org/@uppy/core/-/core-2.3.4.tgz",
"integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@transloadit/prettier-bytes": "0.0.7",
"@uppy/store-default": "^2.1.1",
@@ -1109,6 +1113,7 @@
"resolved": "https://registry.npmjs.org/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz",
"integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@uppy/companion-client": "^2.2.2",
"@uppy/utils": "^4.1.2",
@@ -1509,6 +1514,7 @@
"resolved": "https://registry.npmjs.org/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz",
"integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"is-url": "^1.2.4"
},
@@ -1541,6 +1547,7 @@
"resolved": "https://registry.npmjs.org/@wangeditor/core/-/core-1.1.19.tgz",
"integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/event-emitter": "^0.3.3",
"event-emitter": "^0.3.5",
@@ -1571,6 +1578,7 @@
"resolved": "https://registry.npmjs.org/@wangeditor/editor/-/editor-5.1.23.tgz",
"integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@uppy/core": "^2.1.1",
"@uppy/xhr-upload": "^2.0.3",
@@ -1938,6 +1946,7 @@
"resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz",
"integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"ssr-window": "^3.0.0-alpha.1"
}
@@ -1961,6 +1970,7 @@
"resolved": "https://registry.npmjs.org/echarts/-/echarts-6.0.0.tgz",
"integrity": "sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==",
"license": "Apache-2.0",
+ "peer": true,
"dependencies": {
"tslib": "2.3.0",
"zrender": "6.0.0"
@@ -2479,7 +2489,8 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.2.0.tgz",
"integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/is-plain-object": {
"version": "5.0.0",
@@ -2521,6 +2532,7 @@
"integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"cssstyle": "^4.1.0",
"data-urls": "^5.0.0",
@@ -2560,13 +2572,15 @@
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash-es": {
"version": "4.17.22",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz",
"integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash-unified": {
"version": "1.0.3",
@@ -2583,44 +2597,51 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash.foreach": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
"integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
"deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
"integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/lodash.toarray": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
"integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/loupe": {
"version": "3.2.1",
@@ -2743,6 +2764,7 @@
}
],
"license": "MIT",
+ "peer": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -2837,6 +2859,7 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=12"
},
@@ -3041,6 +3064,7 @@
"resolved": "https://registry.npmjs.org/slate/-/slate-0.72.8.tgz",
"integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"immer": "^9.0.6",
"is-plain-object": "^5.0.0",
@@ -3064,6 +3088,7 @@
"resolved": "https://registry.npmjs.org/snabbdom/-/snabbdom-3.6.3.tgz",
"integrity": "sha512-W2lHLLw2qR2Vv0DcMmcxXqcfdBaIcoN+y/86SmHv8fn4DazEQSH6KN3TjZcWvwujW56OHiiirsbHWZb4vx/0fg==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=12.17.0"
}
@@ -3256,6 +3281,7 @@
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
"devOptional": true,
"license": "Apache-2.0",
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -3270,6 +3296,7 @@
"integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.4.4",
@@ -4391,6 +4418,7 @@
"integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"esbuild": "^0.21.3",
"postcss": "^8.4.43",
@@ -4457,6 +4485,7 @@
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz",
"integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.26",
"@vue/compiler-sfc": "3.5.26",
diff --git a/server/MiAssessment/src/MiAssessment.Api/Controllers/AuthController.cs b/server/MiAssessment/src/MiAssessment.Api/Controllers/AuthController.cs
index 5c3a6fb..df4e31d 100644
--- a/server/MiAssessment/src/MiAssessment.Api/Controllers/AuthController.cs
+++ b/server/MiAssessment/src/MiAssessment.Api/Controllers/AuthController.cs
@@ -54,7 +54,8 @@ public class AuthController : ControllerBase
var result = await _authService.WechatMiniProgramLoginAsync(
request.Code,
request.Pid,
- request.ClickId);
+ request.ClickId,
+ request.PhoneCode);
if (result.Success && result.LoginResponse != null)
{
diff --git a/server/MiAssessment/src/MiAssessment.Core/Interfaces/IAuthService.cs b/server/MiAssessment/src/MiAssessment.Core/Interfaces/IAuthService.cs
index 7ac6066..25efec9 100644
--- a/server/MiAssessment/src/MiAssessment.Core/Interfaces/IAuthService.cs
+++ b/server/MiAssessment/src/MiAssessment.Core/Interfaces/IAuthService.cs
@@ -3,95 +3,95 @@ using MiAssessment.Model.Models.Auth;
namespace MiAssessment.Core.Interfaces;
///
-/// 认证服务接口
+/// 锟斤拷证锟斤拷锟斤拷涌锟
///
public interface IAuthService
{
///
- /// 微信小程序登录
+ /// 微锟斤拷小锟斤拷锟斤拷锟铰
///
- /// 微信授权code
- /// 推荐人ID
- /// 点击ID
- /// 登录结果
- Task WechatMiniProgramLoginAsync(string code, int? pid, string? clickId);
+ /// 微锟斤拷锟斤拷权code
+ /// 锟狡硷拷锟斤拷ID
+ /// 锟斤拷锟絀D
+ /// 锟斤拷录锟斤拷锟
+ Task WechatMiniProgramLoginAsync(string code, int? pid, string? clickId, string? phoneCode = null);
///
- /// 手机号验证码登录
+ /// 锟街伙拷锟斤拷锟斤拷证锟斤拷锟铰
///
- /// 手机号
- /// 短信验证码
- /// 推荐人ID
- /// 点击ID
- /// 登录结果
+ /// 锟街伙拷锟斤拷
+ /// 锟斤拷锟斤拷锟斤拷证锟斤拷
+ /// 锟狡硷拷锟斤拷ID
+ /// 锟斤拷锟絀D
+ /// 锟斤拷录锟斤拷锟
Task MobileLoginAsync(string mobile, string code, int? pid, string? clickId);
///
- /// 验证码绑定手机号
+ /// 锟斤拷证锟斤拷锟斤拷只锟斤拷锟
///
- /// 用户ID
- /// 手机号
- /// 短信验证码
- /// 绑定结果
+ /// 锟矫伙拷ID
+ /// 锟街伙拷锟斤拷
+ /// 锟斤拷锟斤拷锟斤拷证锟斤拷
+ /// 锟襟定斤拷锟
Task BindMobileAsync(long userId, string mobile, string code);
///
- /// 微信授权绑定手机号
+ /// 微锟斤拷锟斤拷权锟斤拷锟街伙拷锟斤拷
///
- /// 用户ID
- /// 微信授权code
- /// 绑定结果
+ /// 锟矫伙拷ID
+ /// 微锟斤拷锟斤拷权code
+ /// 锟襟定斤拷锟
Task WechatBindMobileAsync(long userId, string wechatCode);
///
- /// 记录登录信息
+ /// 锟斤拷录锟斤拷录锟斤拷息
///
- /// 用户ID
- /// 设备类型
- /// 设备信息
- /// 记录登录响应
+ /// 锟矫伙拷ID
+ /// 锟借备锟斤拷锟斤拷
+ /// 锟借备锟斤拷息
+ /// 锟斤拷录锟斤拷录锟斤拷应
Task RecordLoginAsync(long userId, string? device, string? deviceInfo);
///
- /// 账号注销
+ /// 锟剿猴拷注锟斤拷
///
- /// 用户ID
- /// 类型:0=注销 1=取消注销
- /// 异步任务
+ /// 锟矫伙拷ID
+ /// 锟斤拷锟酵o拷0=注锟斤拷 1=取锟斤拷注锟斤拷
+ /// 锟届步锟斤拷锟斤拷
Task LogOffAsync(long userId, int type);
///
- /// H5绑定手机号(无需验证码)
+ /// H5锟斤拷锟街伙拷锟脚o拷锟斤拷锟斤拷锟斤拷证锟诫)
///
- /// 用户ID
- /// 手机号
- /// 绑定结果
+ /// 锟矫伙拷ID
+ /// 锟街伙拷锟斤拷
+ /// 锟襟定斤拷锟
Task BindMobileH5Async(long userId, string mobile);
- #region Refresh Token 相关方法
+ #region Refresh Token 锟斤拷胤锟斤拷锟
///
- /// 刷新 Token
+ /// 刷锟斤拷 Token
///
/// Refresh Token
- /// 客户端 IP 地址
- /// 刷新结果,包含新的 Access Token 和 Refresh Token
+ /// 锟酵伙拷锟斤拷 IP 锟斤拷址
+ /// 刷锟铰斤拷锟斤拷锟斤拷锟斤拷锟斤拷碌锟 Access Token 锟斤拷 Refresh Token
Task RefreshTokenAsync(string refreshToken, string? ipAddress);
///
- /// 撤销 Token
+ /// 锟斤拷锟斤拷 Token
///
- /// 要撤销的 Refresh Token
- /// 客户端 IP 地址
- /// 异步任务
+ /// 要锟斤拷锟斤拷锟斤拷 Refresh Token
+ /// 锟酵伙拷锟斤拷 IP 锟斤拷址
+ /// 锟届步锟斤拷锟斤拷
Task RevokeTokenAsync(string refreshToken, string? ipAddress);
///
- /// 撤销用户的所有 Token
+ /// 锟斤拷锟斤拷锟矫伙拷锟斤拷锟斤拷锟斤拷 Token
///
- /// 用户ID
- /// 客户端 IP 地址
- /// 异步任务
+ /// 锟矫伙拷ID
+ /// 锟酵伙拷锟斤拷 IP 锟斤拷址
+ /// 锟届步锟斤拷锟斤拷
Task RevokeAllUserTokensAsync(long userId, string? ipAddress);
#endregion
diff --git a/server/MiAssessment/src/MiAssessment.Core/Services/AuthService.cs b/server/MiAssessment/src/MiAssessment.Core/Services/AuthService.cs
index 74cd846..4123f7e 100644
--- a/server/MiAssessment/src/MiAssessment.Core/Services/AuthService.cs
+++ b/server/MiAssessment/src/MiAssessment.Core/Services/AuthService.cs
@@ -60,9 +60,9 @@ public class AuthService : IAuthService
/// 微锟斤拷小锟斤拷锟斤拷锟铰
/// Requirements: 1.1-1.8
///
- public async Task WechatMiniProgramLoginAsync(string code, int? pid, string? clickId)
+ public async Task WechatMiniProgramLoginAsync(string code, int? pid, string? clickId, string? phoneCode = null)
{
- _logger.LogInformation("[AuthService] 微锟脚碉拷录锟斤拷始锟斤拷code={Code}, pid={Pid}", code, pid);
+ _logger.LogInformation("[AuthService] 微锟脚碉拷录锟斤拷始锟斤拷code={Code}, pid={Pid}, hasPhoneCode={HasPhoneCode}", code, pid, !string.IsNullOrWhiteSpace(phoneCode));
if (string.IsNullOrWhiteSpace(code))
{
@@ -132,10 +132,29 @@ public class AuthService : IAuthService
{
// 1.3 鏂扮敤鎴凤紝鍒涘缓骞剁粦瀹氫笂绾
_logger.LogInformation("[AuthService] 鐢ㄦ埛涓嶅瓨鍦紝寮濮嬪垱寤烘柊鐢ㄦ埛, pid={Pid}", pid);
+
+ // 閫氳繃 phoneCode 鑾峰彇鎵嬫満鍙
+ string? mobile = null;
+ if (!string.IsNullOrWhiteSpace(phoneCode))
+ {
+ _logger.LogInformation("[AuthService] 寮濮嬮氳繃phoneCode鑾峰彇鎵嬫満鍙");
+ var mobileResult = await _wechatService.GetMobileAsync(phoneCode);
+ if (mobileResult.Success && !string.IsNullOrWhiteSpace(mobileResult.Mobile))
+ {
+ mobile = mobileResult.Mobile;
+ _logger.LogInformation("[AuthService] 鎵嬫満鍙疯幏鍙栨垚鍔");
+ }
+ else
+ {
+ _logger.LogWarning("[AuthService] 鎵嬫満鍙疯幏鍙栧け璐: {Error}", mobileResult.ErrorMessage);
+ }
+ }
+
var createDto = new CreateUserDto
{
OpenId = openId,
UnionId = unionId,
+ Mobile = mobile,
Nickname = await GetDefaultNicknameAsync(),
Headimg = await GetDefaultAvatarAsync(openId),
Pid = pid ?? 0
@@ -155,6 +174,19 @@ public class AuthService : IAuthService
await _userService.UpdateUserAsync(user.Id, new UpdateUserDto { UnionId = unionId });
_logger.LogInformation("[AuthService] unionid鏇存柊鎴愬姛");
}
+
+ // 宸叉湁鐢ㄦ埛濡傛灉娌℃湁鎵嬫満鍙凤紝涔熷皾璇曢氳繃 phoneCode 琛ュ厖
+ if (string.IsNullOrWhiteSpace(user.Phone) && !string.IsNullOrWhiteSpace(phoneCode))
+ {
+ _logger.LogInformation("[AuthService] 宸叉湁鐢ㄦ埛缂哄皯鎵嬫満鍙凤紝灏濊瘯閫氳繃phoneCode琛ュ厖");
+ var mobileResult = await _wechatService.GetMobileAsync(phoneCode);
+ if (mobileResult.Success && !string.IsNullOrWhiteSpace(mobileResult.Mobile))
+ {
+ await _userService.UpdateUserAsync(user.Id, new UpdateUserDto { Mobile = mobileResult.Mobile });
+ user.Phone = mobileResult.Mobile;
+ _logger.LogInformation("[AuthService] 鎵嬫満鍙疯ˉ鍏呮垚鍔");
+ }
+ }
}
// 1.5 锟斤拷锟斤拷双 Token锟斤拷Access Token + Refresh Token锟斤拷
diff --git a/server/MiAssessment/src/MiAssessment.Model/Models/Auth/WechatLoginRequest.cs b/server/MiAssessment/src/MiAssessment.Model/Models/Auth/WechatLoginRequest.cs
index daa90b2..a8f58e2 100644
--- a/server/MiAssessment/src/MiAssessment.Model/Models/Auth/WechatLoginRequest.cs
+++ b/server/MiAssessment/src/MiAssessment.Model/Models/Auth/WechatLoginRequest.cs
@@ -13,6 +13,12 @@ public class WechatLoginRequest
[JsonPropertyName("code")]
public string Code { get; set; } = string.Empty;
+ ///
+ /// 寰俊鑾峰彇鎵嬫満鍙风殑鎺堟潈code
+ ///
+ [JsonPropertyName("phoneCode")]
+ public string? PhoneCode { get; set; }
+
///
/// 鎺ㄨ崘浜篒D锛堝墠绔彲鑳戒紶绌哄瓧绗︿覆锛屾墍浠ョ敤string鎺ユ敹锛
///
diff --git a/uniapp/manifest.json b/uniapp/manifest.json
index b56f978..58eb3ae 100644
--- a/uniapp/manifest.json
+++ b/uniapp/manifest.json
@@ -1,6 +1,6 @@
{
"name" : "瀛︿笟閭戣鍒",
- "appid" : "__UNI__1BAACAB",
+ "appid" : "__UNI__A612028",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
diff --git a/uniapp/pages/assessment/info/index.vue b/uniapp/pages/assessment/info/index.vue
index 25eb2bc..712dc17 100644
--- a/uniapp/pages/assessment/info/index.vue
+++ b/uniapp/pages/assessment/info/index.vue
@@ -543,6 +543,7 @@ onLoad((options) => {
class="invite-input"
type="text"
placeholder="璇疯緭鍏5浣嶉個璇风爜"
+ placeholder-style="letter-spacing: 0rpx;"
:value="inviteCode"
@input="onInviteCodeInput"
maxlength="5"
@@ -947,7 +948,7 @@ onLoad((options) => {
font-size: $font-size-lg;
color: $text-color;
text-align: center;
- letter-spacing: 8rpx;
+ letter-spacing: 16rpx;
box-sizing: border-box;
}