ionic-实现单终端登陆方案

文章目录

          • 一、实现单终端登陆方案

一、实现单终端登陆方案

场景:一个账号只能单终端登陆,第二个终端登陆的时,提示上个在线的终端,提示下线,须重新登陆。
实现方案:基于友盟推送实现。ionic的友盟插件改造移步另外一遍博客,基于Android系统开发ionic调用友盟SDK的Cordova插件
前端流程改造:
ionic-实现单终端登陆方案_第1张图片
简要说明:

  • 启动app,输用户名和密码,点击登陆。
    • 在登陆之前,需要获取友盟注册成功返回的deviceToken,如果获取失败,后端是无法进行单特定设备推送的。
  • 将获取到deviceToken传给后端接口,同时登陆成功,开启获取插件中的推送消息的定时任务。
  • 定时只要收到推送消息,立马弹出提示,账号已经在其他设备登陆,需要重新登陆,同时清除定时任务。
  • 只要前端消费掉插件中的消息,那么缓存在插件中的消息,直接清除或者置空。防止,多次消费。
  • 为什么采用定时任务方案?
    • 因为友盟推送,app后台运行,这个推送消息就消费掉了,但是我们app内是无法获取该推送记录。
    • 拿不到这推送记录,当我们app在线的时候,就无法提示用户,账号已在其他终端登陆,需要重新登陆。
    • 采用定时方案,消息缓存在插件中,只要登陆成功,这个定时就在手机中执行,就算你放后台处理,只要你一打开应用,就会给出及时的提示。

后端流程改造:
ionic-实现单终端登陆方案_第2张图片
简要说明:

  • 登陆获取传输的deviceToken,与库中的非空deviceToken比较。
  • 如果一致,正常登陆
  • 如果不一致,获取最新在线的deviceToken进行推送。

你可能感兴趣的:(ionic)