feat(账号登陆): 添加上次登录的设备号字段

This commit is contained in:
luying
2022-10-24 17:29:38 +08:00
parent 687d096cdd
commit ca686f8418
2 changed files with 41 additions and 35 deletions

View File

@@ -31,29 +31,29 @@ export default class Auth extends Service {
public async deviceLogin(isGuest: boolean, token: string, deviceId: string, platform: string, pkgName: string, serverType: string, getuiCID: string) {
const ctx = this.ctx;
let user = await UserModel.findUserByToken(token);
let oldUser = await UserModel.findUserByToken(token);
if (!user) {
if (!oldUser) {
if (isGuest) {
const tel = ctx.service.utils.genCode(10);
const token = ctx.service.utils.generateStr(256);
let lastGuest = await UserModel.getLastDeviceGuest(deviceId, token);
if (lastGuest) {
let param = this.getReturnParam(lastGuest);
let param = this.getReturnParam(lastGuest, lastGuest.deviceId);
return this.ctx.service.utils.resResult(STATUS.SUCCESS, {
canLogin: true, // 未设置密码等于未创建账号
...param
});
} else {
user = await UserModel.createUser(isGuest, tel, token, platform, pkgName, serverType, deviceId, 0, ctx.clientIp);
let user = await UserModel.createUser(isGuest, tel, token, platform, pkgName, serverType, deviceId, 0, ctx.clientIp);
if (getuiCID) {//更新个推cid
await UserModel.updateGetuiCID(tel, getuiCID);
}
if(user && user.userCode) {
ctx.service.utils.checkOnlineUser(user.userCode);
}
let param = this.getReturnParam(user);
let param = this.getReturnParam(user, null);
return this.ctx.service.utils.resResult(STATUS.SUCCESS, {
canLogin: true,
@@ -69,14 +69,14 @@ export default class Auth extends Service {
}
} else {
const token = ctx.service.utils.generateStr(256);
user = await UserModel.updateToken(user.tel, token, deviceId, ctx.clientIp);
let user = await UserModel.updateToken(oldUser.tel, token, deviceId, ctx.clientIp);
if (getuiCID) {//更新个推cid
await UserModel.updateGetuiCID(user.tel, getuiCID);
}
if(user && user.userCode) {
ctx.service.utils.checkOnlineUser(user.userCode);
}
let param = this.getReturnParam(user);
let param = this.getReturnParam(user, oldUser.deviceId);
let canLogin = true;
if (!user.isGuest && !user.hasSetPw) canLogin = false;
@@ -88,7 +88,7 @@ export default class Auth extends Service {
}
private getReturnParam(user: UserType) {
private getReturnParam(user: UserType, deviceId: string) {
let age = getAge(user.birthday);
let isAdult = age >= ADULT_AGE;
let todayPlayTime = user.todayPlayTime;
@@ -107,7 +107,8 @@ export default class Auth extends Service {
type, // 防沉迷类型
hasSetPw: user.hasSetPw, // 是否设置了密码
token: user.token, // 用户token
userCode: user.userCode // 用户标识
userCode: user.userCode, // 用户标识
deviceId
}
}
@@ -223,14 +224,14 @@ export default class Auth extends Service {
// 用户注册登录
const token = ctx.service.utils.generateStr(256);
const user = await UserModel.createOrUpdate(false, tel, token, platform, pkgName, serverType, deviceId, ctx.clientIp);
const {user, deviceId: oldDeviceId} = await UserModel.createOrUpdate(false, tel, token, platform, pkgName, serverType, deviceId, ctx.clientIp);
if (getuiCID) {//更新个推cid
await UserModel.updateGetuiCID(tel, getuiCID);
}
if(user && user.userCode) {
ctx.service.utils.checkOnlineUser(user.userCode);
}
let param = this.getReturnParam(user);
let param = this.getReturnParam(user, oldDeviceId);
return ctx.service.utils.resResult(STATUS.SUCCESS, param);
}
@@ -261,7 +262,7 @@ export default class Auth extends Service {
let user = await UserModel.setPass(uid, password);
if (user) {
let param = this.getReturnParam(user);
let param = this.getReturnParam(user, user.deviceId);
return ctx.service.utils.resResult(STATUS.SUCCESS, param);
} else {
return ctx.service.utils.resResult(STATUS.INTERNAL_ERR);
@@ -287,7 +288,7 @@ export default class Auth extends Service {
// 用户注册登录
const token = ctx.service.utils.generateStr(256);
const user = await UserModel.checkPass(tel, pw, token, deviceId);
const {user, deviceId: oldDeviceId} = await UserModel.checkPass(tel, pw, token, deviceId);
if (!user) return ctx.service.utils.resResult(STATUS.PASSWORD_ERR);
if (getuiCID) {//更新个推cid
await UserModel.updateGetuiCID(tel, getuiCID);
@@ -295,7 +296,7 @@ export default class Auth extends Service {
if(user && user.userCode) {
ctx.service.utils.checkOnlineUser(user.userCode);
}
let param = this.getReturnParam(user);
let param = this.getReturnParam(user, oldDeviceId);
return ctx.service.utils.resResult(STATUS.SUCCESS, { ...param });
}
@@ -392,7 +393,7 @@ export default class Auth extends Service {
let user = await UserModel.bindTel(ctx.uid, tel);
if (!user) return ctx.service.utils.resResult(STATUS.ACCOUNT_NOT_GUEST);
let param = this.getReturnParam(user);
let param = this.getReturnParam(user, user.deviceId);
return ctx.service.utils.resResult(STATUS.SUCCESS, param);
}
@@ -409,7 +410,7 @@ export default class Auth extends Service {
let birthday = this.getBirthdayByIdCard(idNum);
let user = await UserModel.authentication(ctx.uid, birthday, '');
let param = this.getReturnParam(user);
let param = this.getReturnParam(user, user.deviceId);
return ctx.service.utils.resResult(STATUS.SUCCESS, param);
}
@@ -440,7 +441,7 @@ export default class Auth extends Service {
let channelId = getChannelId(channelType, requestResult.data.uid);
const token = ctx.service.utils.generateStr(256);
let { user} = await UserModel.createOrUpdateChannelUser(channelId, channelType, {
let { user, deviceId: oldDeviceId } = await UserModel.createOrUpdateChannelUser(channelId, channelType, {
...requestResult.data, childGameId:`${childGameId}`, platformAppid
}, token, platform, pkgName, serverType, deviceId, ctx.clientIp);
if(user && user.userCode) {
@@ -459,7 +460,8 @@ export default class Auth extends Service {
channelId,
token: user.token,
userCode: user.userCode,
channelInfo
channelInfo,
deviceId: oldDeviceId
});
}