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] })