邮件,异地登录bug
This commit is contained in:
@@ -12,6 +12,7 @@ import { getAp } from '../../../services/actionPointService';
|
||||
import { ItemModel } from '../../../db/Item';
|
||||
import { chackFunOpenWhenLogin } from '../../../services/funcSwitchService';
|
||||
import { loginRefresh } from '../../../services/playerEventService';
|
||||
import { getRedis, setRedis } from '../../../services/redisService';
|
||||
export default function (app: Application) {
|
||||
return new EntryHandler(app);
|
||||
}
|
||||
@@ -29,7 +30,6 @@ export class EntryHandler {
|
||||
async enter(msg: { token: string, serverId: number }, session: FrontendSession) {
|
||||
let self = this;
|
||||
let serverId = msg.serverId;
|
||||
let sessionService = self.app.get('sessionService');
|
||||
|
||||
let user = await UserModel.findUserByToken(msg.token);
|
||||
if (!user) {
|
||||
@@ -41,8 +41,13 @@ export class EntryHandler {
|
||||
if (!role) {
|
||||
return resResult(STATUS.ROLE_NOT_FOUND);
|
||||
}
|
||||
self.remoteLogin(role.roleId);
|
||||
await sessionService.akick(role.roleId);//
|
||||
let key = 'login_roleId_' + role.roleId;
|
||||
let connect = await getRedis(key);
|
||||
if (!!connect) {
|
||||
self.app.rpc.connector.connectorRemote.remoteLogin.toServer(connect, role.roleId);
|
||||
}
|
||||
let serverName = this.app.getServerId();
|
||||
setRedis(key, serverName);
|
||||
await session.abind(role.roleId);
|
||||
session.set('uid', role.roleId);
|
||||
session.set('roleId', role.roleId);
|
||||
@@ -88,21 +93,10 @@ export class EntryHandler {
|
||||
role['apJson'] = apJson;
|
||||
role['ce'] = reduceCe(role.ce);
|
||||
role['topFiveCe'] = reduceCe(role.topFiveCe);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { role });
|
||||
}
|
||||
|
||||
remoteLogin(uid: string) {
|
||||
let sessionService = this.app.get('sessionService');
|
||||
let sessions = sessionService.getByUid(uid);
|
||||
if (!!sessions) {
|
||||
sessions.forEach(session=>{
|
||||
let roleId = session.get('roleId');
|
||||
let sid = session.get('sid');
|
||||
let uids = [{uid: roleId, sid}];
|
||||
this.app.get('channelService').pushMessageByUids('onRemoteLogin', resResult(STATUS.LOGIN_ERR ), uids);
|
||||
});
|
||||
}
|
||||
}
|
||||
/**
|
||||
* User log out handler
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user