diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 4198fb454..4a94eeb23 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -250,7 +250,7 @@ export default class Role extends BaseModel { @prop({ required: true, default: 0 }) updatedMailAt: number; public static async findAllByUid(uid: number, lean = true) { - const role: RoleType[] = await RoleModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId').lean(lean); + const role: RoleType[] = await RoleModel.find({ 'userInfo.uid': uid }).select('roleId roleName serverId headHid sHid lv updatedAt').lean(lean); return role; } diff --git a/shared/db/User.ts b/shared/db/User.ts index 73bacf767..d80fe654b 100644 --- a/shared/db/User.ts +++ b/shared/db/User.ts @@ -160,7 +160,7 @@ export default class User extends BaseModel { const curTime: Date = new Date(); let { salt } = user; let { npassword } = await this.encryptPass(password, salt); - const checkUser: UserType = await UserModel.findOneAndUpdate({ tel, password: npassword }, { $set: { token, lastLoginTime: curTime }, $addToSet: {device: deviceId}}).select('uid username name token').lean(lean); + const checkUser: UserType = await UserModel.findOneAndUpdate({ tel, password: npassword }, { $set: { token, lastLoginTime: curTime }, $addToSet: {device: deviceId}}, { new: true }).lean(lean); return checkUser; } else { return null @@ -193,7 +193,7 @@ export default class User extends BaseModel { } public static async addAuth(uid: number, auth: number, lean = true) { - const user: UserType = await UserModel.findOneAndUpdate({ uid }, { auth }).select('uid tel').lean(lean); + const user: UserType = await UserModel.findOneAndUpdate({ uid }, { auth }, {new: true}).select('uid tel').lean(lean); return user; } diff --git a/web-server/app/service/Auth.ts b/web-server/app/service/Auth.ts index f5345e2b9..13abcd97e 100644 --- a/web-server/app/service/Auth.ts +++ b/web-server/app/service/Auth.ts @@ -72,8 +72,10 @@ export default class Auth extends Service { if(param.isGuest && param.guestTime > GUEST_MAX_TIME) { loginType = 2; } + let canLogin = true; + if(!user.isGuest && !user.hasSetPw) canLogin = false; return this.ctx.service.utils.resResult(STATUS.SUCCESS, { - canLogin: user.hasSetPw, // 未设置密码等于未创建账号 + canLogin, // 未设置密码等于未创建账号 loginType, ...param });