From 99108b2187cd01f611ecf7b96f46481387a7f025 Mon Sep 17 00:00:00 2001 From: lik Date: Mon, 1 Jun 2026 20:26:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86wxSignin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/users.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/handler/users.js b/handler/users.js index a13c7c8..ccdf814 100644 --- a/handler/users.js +++ b/handler/users.js @@ -51,7 +51,7 @@ class HandlerUser { // 微信登录 async wxSignin(ctx) { try { - const { code, phoneNumber, appId } = ctx.request.body; + const { code, phoneNumber, name, appId } = ctx.request.body; if (!code || !appId) { return ResponseUtil.badRequest(ctx, "缺少微信登录凭证 code 或 appId"); } @@ -81,7 +81,7 @@ class HandlerUser { } const newUser = { - profile: { name: phoneNumber, mobile: phoneNumber, }, + profile: { name: name || phoneNumber, mobile: phoneNumber, }, social: { wechat: { openid: openid }, }, @@ -91,8 +91,13 @@ class HandlerUser { newUser.app[appId] = { role: ["user"], }; user = await DBModel.User.setUser(newUser); - } else if (phoneNumber && phoneNumber.length > 0 && user.profile.mobile !== phoneNumber) { - user.profile.mobile = phoneNumber; + } else { + if (phoneNumber && phoneNumber.length > 0 && user.profile.mobile !== phoneNumber) { + user.profile.mobile = phoneNumber; + } + if (!(appId in user.app)) { + user.app[appId].role = ["user"]; + } } const token = await this.genToken(user._id.toString());