起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖
楼主: 爱开发

[处理中3] 如何控制同一用户PC和mobile中允许同时登录,但PC和mobile分...

[复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-1-31 11:45:46 | 显示全部楼层
那就自己在前端的调用登录前去判断是否存在,如果存在自己获取到对应的bsessionid去注销

http://docs.wex5.com/bex5-ui-question-list-10264/
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

54

主题

247

帖子

632

积分

高级会员

Rank: 4

积分
632
QQ
 楼主| 发表于 2018-1-31 14:40:00 | 显示全部楼层
本帖最后由 爱开发 于 2018-1-31 15:03 编辑
jishuang 发表于 2018-1-31 11:45
那就自己在前端的调用登录前去判断是否存在,如果存在自己获取到对应的bsessionid去注销

http://docs.wex5 ...

之前没有更新这个登录的时候就是用的这种方法,无论是pc还是移动端登录只能登录一个。能不能具体的帮助解决。
回复 支持 反对

使用道具 举报

54

主题

247

帖子

632

积分

高级会员

Rank: 4

积分
632
QQ
 楼主| 发表于 2018-1-31 14:43:28 | 显示全部楼层
本帖最后由 爱开发 于 2018-1-31 15:04 编辑
jishuang 发表于 2018-1-31 11:45
那就自己在前端的调用登录前去判断是否存在,如果存在自己获取到对应的bsessionid去注销

http://docs.wex5 ...

这个我看了,自己也用了,怎么和最新发布的结合其来(目前不是不能像QQ那样,一个账号在其他浏览登录后其他账号注销。)这个登录不太适合,需求呀。前端应该怎么去调用写的java文件,得到返回值。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-1-31 15:15:37 | 显示全部楼层
后端登录前事件的修改为下面的
  1.         public static void systemProcessBeforeLoginAction() throws Exception {

  2.                 String user = ((String) ContextHelper.getActionContext().getParameter("name"));
  3.                 Map<Object, Object> options = (Map<Object, Object>) ContextHelper.getActionContext().getParameter("options");
  4.                 String deviceType = (String) options.get("DeviceType");
  5.                 String userDeviceType = user+":"+deviceType;
  6.                 String onLine = (String) options.get("onLine");               
  7.                 //获取登录输入的name和设备类型,判断map中是否存在
  8.                 if (OnLineMap.OnLineMaps.containsKey(userDeviceType)) {
  9.                         if(Utils.isNotEmptyString(onLine) && onLine.equals("已登录")){
  10.                                 HttpSession session = (HttpSession) OnLineMap.OnLineMaps.get(userDeviceType);
  11.                                 session.invalidate();
  12.                         }else
  13.                                 throw new Exception("此用户已经在当前终端类型登录,请切换其他用户登录");

  14.                 }

  15.         }
复制代码


前端在/UI2/portal/base/login/login.js中
  1. else
  2.                                 throw justep.Error.create(result.message);
复制代码

修改为:
  1. else {
  2.                         var message = result.message;
  3.                         if (message == '此用户已经在当前终端类型登录,请切换其他用户登录') {
  4.                                 var r = confirm("此用户已经在当前终端类型登录请确认是否退出已登录用户重新登录,若取消请换其他用户登录");
  5.                                 if (r === true) {
  6.                                         urlParams["options[onLine]"] = "已登录";
  7.                                         var result2 = this.doLogin(urlParams);
  8.                                         if (result2.flag === true) {
  9.                                                 var auto2 = autoLogin.val();
  10.                                                 if (remember.val()) {
  11.                                                         this.store('rememberme', "remember");
  12.                                                         this.store('username', urlParams.username);
  13.                                                         this.store('password', urlParams.password);
  14.                                                         this.store('autoLogin', auto2);
  15.                                                 }
  16.                                                 // 对话框返回数据
  17.                                                 this.comp("receiver").windowEnsure(result2.data);

  18.                                                 return false;
  19.                                         } else {
  20.                                                 throw justep.Error.create(result2.message);
  21.                                         }

  22.                                 } else {
  23.                                         return;
  24.                                 }
  25.                         } else
  26.                                 throw justep.Error.create(result.message);
  27.                 }
复制代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

54

主题

247

帖子

632

积分

高级会员

Rank: 4

积分
632
QQ
 楼主| 发表于 2018-1-31 15:43:37 | 显示全部楼层
jishuang 发表于 2018-1-31 15:15
后端登录前事件的修改为下面的

感谢,已经可以用了
1、但是手机端登录不能把其他的手机端用户注销掉(自己用的是铛铛的登录)
【Model.prototype.login = function() {
                var name = this.comp('name');
                var password = this.comp('password');
                var urlParams = {};
                urlParams.username = name.val() || $("[xid=name]").val();// 为了支持360急速浏览器,
                // 自动设置参数的情况
                urlParams.password = password.val() || $("[xid=password]").val();// 同上
                // justep.Shell.loadPage({"url":"$UI/portal/mobile/login/login.w?name="+urlParams.username+"&password="+urlParams.password});

                urlParams.password = md5.hex_md5_salt(urlParams.password);
                urlParams.loginDate = justep.Date.toString(new Date(), 'yyyy-MM-dd');
                var client = this.getContext().getRequestParameter('client');
                if (client)
                        urlParams.client = client;

                var self = this;
                IM.login(urlParams, this).done(function(data) {
                        self.owner.send(data);
                        localStorage.setItem("username", urlParams.username);
                        self.close();
                }).fail(function(error) {
                        justep.Util.hint(error);
                });
        };】

这个怎么做?
2、添加的BusinessServer 中添加的java类,该怎么放置到服务器上面,是直接带class文件一起放到服务器上面吗。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-1-31 16:24:12 | 显示全部楼层
1.http://docs.wex5.com/bex5-ui-question-list-10285/
2.直接把java和class都拷贝过去啊
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-6 22:16 , Processed in 0.063007 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表