From 2bc58d0c6a15a13fd7098adfccea46a7c42db116 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Tue, 15 Sep 2026 12:16:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=BB=98=E8=AE=A4=E6=98=B5=E7=A7=B0?= =?UTF-8?q?=E5=B8=A6=E5=BA=8F=E5=8F=B7=EF=BC=88=E6=98=9F=E8=BE=B0=E6=97=85?= =?UTF-8?q?=E8=A1=8C=E8=80=851001=20=E8=B5=B7=E6=AD=A5=EF=BC=8C=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=E5=8D=A0=E7=94=A8=EF=BC=89=EF=BC=8C=E4=B8=8E=E7=94=BB?= =?UTF-8?q?=E5=B1=BF=E7=94=BB=E5=8F=8B=E6=96=B9=E6=A1=88=E4=B8=80=E8=87=B4?= =?UTF-8?q?=EF=BC=8C=E7=BA=AF=E5=90=8E=E7=AB=AF=E6=97=A0=E9=9C=80=E5=8F=91?= =?UTF-8?q?=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/routes/auth.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/server/src/routes/auth.js b/server/src/routes/auth.js index a324943..98c6c9d 100755 --- a/server/src/routes/auth.js +++ b/server/src/routes/auth.js @@ -1,5 +1,19 @@ const express = require('express') const router = express.Router() + +/** + * 生成默认昵称:星辰旅行者 + 序号(1001 起步,跳过已占用,参考画屿画友1001 方案) + */ +async function genDefaultNickName() { + const used = new Set( + (await User.find({ nickName: /^星辰旅行者\d+$/ }).select('nickName').lean()) + .map(u => parseInt(String(u.nickName).replace('星辰旅行者', ''), 10)) + .filter(n => !isNaN(n)) + ) + let n = 1001 + while (used.has(n)) n++ + return `星辰旅行者${n}` +} const jwt = require('jsonwebtoken') const { User, Admin, AdminLog, LoginLog, VerificationCode } = require('../models') const ApiResponse = require('../utils/response') @@ -107,7 +121,7 @@ router.post('/login', async (req, res) => { // 新用户 user = new User({ openid, - nickName: userInfo?.nickName || '星辰旅行者', + nickName: userInfo?.nickName || (await genDefaultNickName()), avatarUrl: userInfo?.avatarUrl || '', unlockedDims: [1] }) @@ -195,7 +209,7 @@ router.post('/webview-login', async (req, res) => { // 新用户 - 使用微信提供的信息创建账户 user = new User({ openid, - nickName: userInfo?.nickName || '星辰旅行者', + nickName: userInfo?.nickName || (await genDefaultNickName()), avatarUrl: userInfo?.avatarUrl || '', unlockedDims: [1] }) @@ -479,7 +493,7 @@ router.post('/user/register', async (req, res) => { username: finalUsername, email: email || '', password, - nickName: nickName || '星辰旅行者', + nickName: nickName || (await genDefaultNickName()), avatarUrl: avatarUrl || '', unlockedDims: [1] })