现在有这样的功能需求:
小程序和APP两种同样的软件,要实现以下登陆限制需求:
1、同一台手机,小程序和APP用不同账号可以同时登陆(这是一定可以的)
2、同一台手机,小程序和APP用同一账号可以同时登陆
3、不同的手机,同一个账号不能同时登陆,手机A用 账号1 登陆后,再将手机B用 账号1 登陆,那么手机A将被下线
过滤器中目前是这样做的:
    判断token(token是登陆成功后,存放到redis中的)
现在的问题是:
1、同一台手机,小程序和APP同时用同一账号登陆,则前一个登陆的就会被下线(因为token不一致)

解决方案 »

  1.   

    我现在是提出这样一个需求:
    1、让移动端IOS或者android,看能否获取到机器的一个唯一标识
    2、这个标识不受wifi,移动网络因素会变化
    3、能否有这个唯一标识呢?
    求大神请教。
      

  2.   

    现在前端iOS反馈,如果WiFi和移动网络切换了,可能Mac地址会发生改变。有无大神解答????
      

  3.   

    我也想知道有什么好办法,因为涉及到微信小程序能获取到的设备信息简直少的可怜
    1、同一台手机,小程序和APP用不同账号可以同时登陆(这是一定可以的)2、同一台手机,小程序和APP用同一账号可以同时登陆:
    app可以获取到的信息很多,如何用小程序去确认是同一个设备?假设用户先用app登录:
    1>登录请求后判断是否能获取到一个文件路径
    2>假设返回路径地址,表示之前在某个app,或者小程序登录过那么去寻找这个文件,假设能找到表示是在同一台手机
         假设返回空,表示之前没有任何登录操作,那么创建一个文件保存在本机,并将保存的位置和名字(名字可随机)告诉服务器
    3>然后用户登录小程序,请求登录获取文件位置和名字,根据这些信息去找这个文件,如果找到就说明是在同一台手机,就让他登录3、不同的手机,同一个账号不能同时登陆,手机A用 账号1 登陆后,再将手机B用 账号1 登陆,那么手机A将被下线:
    同理假设a、b两台手机:
    用户1登录a设备,创建文件
    用户1登录b设备小程序,寻找文件找不到就表示是不同的手机用wifi和网络的mac地址随机性太大,根本不能作为标识
    关键点在于ios、安卓、小程序,同时能操作的东西
    如果从获取标识入手,那小程序获取不到设备大部分信息就能让你奔溃
    你也可以考虑session、cookies
    以上我也没试过,只是提出一种思路,可能也不可行,因为我也没做过包含小程序登录的判断,假如没有小程序登录的判断话,那就有很多方法做了
      

  4.   


    1,是的,现在前端那边就反馈,无论是IP,MAC地址,都可能会随wifi和移动网络改变。所以反馈做起来很艰难。
    2,现在仅仅是无论是小程序 or  APP,都会传一个token过来,然后进行比较。导致同一台手机,小程序和APP就会产生前一个登陆了,后一个再登陆,就把前一个给下线了。(多台手机更不用说了)
    因此还在找方法。
      

  5.   


    1,是的,现在前端那边就反馈,无论是IP,MAC地址,都可能会随wifi和移动网络改变。所以反馈做起来很艰难。
    2,现在仅仅是无论是小程序 or  APP,都会传一个token过来,然后进行比较。导致同一台手机,小程序和APP就会产生前一个登陆了,后一个再登陆,就把前一个给下线了。(多台手机更不用说了)
    因此还在找方法。那你可以试试,我想的那个办法!你这种包含小程序的 比较难,可以挑战一下
      

  6.   

    说到底就是获取类似uuid的问题,现在没有完美的办法。
      

  7.   

    其实就是设备唯一标示的问题,不能做到理论上的绝对UUID,但可以应用绝大多数的场景。
    一篇文章解决你的问题:
    iOS获取设备的唯一标识最好的方法