返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >多端登录如何实现踢人下线需求实现
  • 649
分享到

多端登录如何实现踢人下线需求实现

多端登录下线需求多端登录踢人下线 2023-05-19 08:05:00 649人浏览 八月长安
摘要

目录1:项目背景2:项目只有PC端3:项目有PC端和APP端和小程序端单端登录双端登录总结1:项目背景  一个项目往往会有小程序,APP,PC等多端访问,比如淘宝,京东等。

1:项目背景

 一个项目往往会有小程序,APP,PC等多端访问,比如淘宝,京东等。这时候就会有一些踢人下线的需求,比如你在一台电脑登录了PC端,这时候你再另外一台电脑也登录PC端,这时候之前在另外一台电脑上就会被强制下线。

或者你登录了PC端,这时候你登陆了APP或者小程序,这时候PC端的账号也会被强制下线

2:项目只有PC端

假设我们现在的项目只有PC端,没有小程序或者APP,那么这时候就是很简单了,用户的sessin(也就是所谓的Token)一般都是存储在Redis中,session中包括用户ID等一些信息,当然还有一个最重要的就是登录的ip地址。

1:用户在登录的时候,从redis中获取用户session,如果没有就可以直接登录了

2:用户在另外一台电脑登录,从redis中获取到用户session,这时候用户session是有的,说明用户之前已经登录过了

3:这时候从用户session中获取IP,判断二者的ip是不是相同,如果不同,这时候就要发送一个通知给客户端,让另外一台设备登录的账号强制下线即可

3:项目有PC端和APP端和小程序端

当你的应用有PC端和APP端的时候,我们用户的session如果还是只存一个ip地址,那明显就是不够的,因为很多情况下,我们PC端和APP端是可以同时登录的,比如淘宝,京东等都是,也就是所谓的双端登录

这时候就会有多种情况

单端登录:PC端,APP端,小程序只能有一端登录

双端登录:允许其中二个端登录

三端登录:三个端都可以同时登录

对于三端可以同时登录就很简单,但是现在有个限制,就是app端只能登录一次,不能同时登录,也就是我一个手机登录了APP,另外一个手机登录的话,之前登录的APP端就要强制下线

所以我们的用户session存储的格式如下

{
   userId:用户的id
   clientType:PC端,小程序端,APP端
   imei:就是设备的唯一编号(对于PC端这个值就是ip地址,其余的就是手机设备的一个唯一编号)
}

单端登录

首先我们要知道,用户登录不同的设备那么用户session是不一样的。对于单端登录,那么我们可以拿到用户的所有的session,然后根据clientType和imei号来强制将其它端的用户session删除掉,然后通知客户端强制下线

双端登录

同样拿到所有用户的session,然后根据自己的业务需求来判定哪一端需要强制下线,比如我们现在已经登录了PC端和APP端,这时候登录小程序,现在要让APP端的强制下线。

这时候登录之后获取用户所有的session,这时候会有二个用户session,首先拿到clientType = APP的session,然后来通知客户端这个端需要强制下线。

如果这时候我登录了PC端和一个APP端,这时候我用另外一台手机登录APP端,那么之前那台手机上登录的APP端就要被强制下线,这个时候仅通过clientType是不行的,因为我二个手机登录的clientType都是APP端。所以这时候就要根据imei号来判断了。因为不同的手机imei号是不一样的。

这时候我拿到用户所有的session

  PC端的session
  sessionA{
      userId: 1,
      clientType: PC,
      imei: "123"
  }
  APP端的session
  sessionA{
      userId: 1,
      clientType: APP,
      imei: "12345"
  }

这时候我从另外一台手机登录的时候,生成的session应该是这样的

 APP端的session
  sessionA{
      userId: 1,
      clientType: APP,
      imei: "1234567"
  }

我发现同一个clientType的session已经有了,这时候我要判断imei号是否一样,imei一样说明是同一台设备,不同说明不是同一台设备,我们只需要把对应设备的账号强制下线即可了

总结

不管是单端登录,双端登录还是多端登录,我们都是根据用户session来判断。只要根据clientType和imei号来就可以满足我们大部分的踢人下线需求了。

以上就是多端登录如何实现踢人下线需求实现的详细内容,更多关于多端登录踢人下线的资料请关注编程网其它相关文章!

--结束END--

本文标题: 多端登录如何实现踢人下线需求实现

本文链接: https://lsjlt.com/news/212870.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 多端登录如何实现踢人下线需求实现
    目录1:项目背景2:项目只有PC端3:项目有PC端和APP端和小程序端单端登录双端登录总结1:项目背景  一个项目往往会有小程序,APP,PC等多端访问,比如淘宝,京东等。...
    99+
    2023-05-19
    多端登录下线需求 多端登录踢人下线
  • Java怎么实现踢人下线功能
    在Java中实现踢人下线功能可以通过以下步骤: 创建一个集合来存储连接到服务器的客户端信息,例如Socket对象或者其他自定义的...
    99+
    2024-03-01
    Java
  • Android端如何实现单点登录“被挤下线”功能
    这篇文章主要为大家展示了“Android端如何实现单点登录“被挤下线”功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android端如何实现单点登录“被挤下线”功能”这篇文章吧。单点登录(被...
    99+
    2023-05-30
    android
  • 如何实现Web端指纹登录
    这篇文章主要介绍“如何实现Web端指纹登录”,在日常操作中,相信很多人在如何实现Web端指纹登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Web端指纹登录”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • PHP如何实现人人OAuth登录和API调用
    PHP如何实现人人OAuth登录和API调用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。人人开放平台给出的PHP SDK,个人感觉写的不怎么样,而且在我的电脑...
    99+
    2023-06-17
  • SpringBoot实现人脸识别等多种登录方式
    目录1.前端界面实现2.手机验证码登录3.人脸识别登录(百度人脸识别)1.前端界面实现 ①背景闪烁效果: <!-- 背景星星闪烁效果 --> <script&g...
    99+
    2024-04-02
  • 如何实现前端ajax请求
    小编给大家分享一下如何实现前端ajax请求,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言AJAX,Asynchronous ...
    99+
    2024-04-02
  • php如何实现SSO登录
    本文操作环境:Windows7系统、PHP7.1版、Dell G3电脑。php如何实现SSO登录SSO单点登录设计及PHP实现建议先熟悉单点登录SSO相关概念。 SSO:单点登录,一次登录,所有相关系统均可以进入,无需重复登录实现方案:共享...
    99+
    2019-04-16
    php SSO
  • SpringBoot如何实现token登录
    这篇文章主要为大家展示了“SpringBoot如何实现token登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot如何实现token登录”这篇文章吧。为什么引入token机制...
    99+
    2023-06-29
  • Java多线程环境下如何实现死锁
    这篇文章主要介绍Java多线程环境下如何实现死锁,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、死锁产生的条件互斥:一次只有一个进程可以使用一个资源。其他进程不能访问已分配给其他进程的资源。不可抢占:不能抢占进程已...
    99+
    2023-06-25
  • java多线程如何实现
    java实现多线程的方法:(推荐:java视频教程)方式一:继承Thread类的方式创建一个继承于Thread类的子类重写Thread类中的run():将此线程要执行的操作声明在run()创建Thread的子类的对象调用此对象的start(...
    99+
    2022-02-13
    java
  • java如何实现多线程
    Java多线程是Java高级特性之一,通过多线程,我们可以实现多任务同时协同工作,在一定情况下提升程序效率,但是Java多线程仍要慎重使用。 (推荐学习:java课程)首先第一点,Java多线程需要较高的编码技巧,一...
    99+
    2019-06-27
    java教程 java
  • PHP 多线程如何实现?
    php 多线程是指在一个进程中同时运行多个任务,通过创建独立运行的线程实现。php 中可以使用 pthreads 扩展模拟多线程行为,安装后可使用 thread 类创建和启动线程。例如,...
    99+
    2024-05-06
    php 多线程
  • redis如何实现多线程
    redis 通过巧妙地结合 reactor 模式、线程池和内部多线程机制实现了多线程,从而有效利用多核 cpu,提高吞吐量、优化资源利用,保持低延迟并增强扩展性,满足不同负载需求。 R...
    99+
    2024-06-12
    redis
  • 若依项目如何实现一个账户只能一个人登录(即,限制账户不允许多终端登录)
    目录 一、不分离版 在application.yml设置maxSession为1即可。修改shiro的配置 二、分离版springboot+vue 1、application.yml新增一个配置soloLogin用于限制多终端同时登录。修...
    99+
    2023-08-31
    spring boot java spring
  • 如何利用PHP实现游戏需求
    对不起,我无法提供实现特定编程功能的具体代码示例。如果您有任何其他问题或需要关于PHP编程的一般指导,请随时告诉我。我会很乐意提供帮助。以上就是如何利用PHP实现游戏需求的详细内容,更...
    99+
    2024-03-10
    php 游戏实现
  • php如何实现自动登录
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。首先在用户第一次登陆的时候,如果勾选了一周内免登陆,则在登陆操作完成之后,存储一个自动登录的cookie,这个cookie可以是“$value是用户的&quo...
    99+
    2015-06-25
    php 自动登录
  • Vista如何实现自动登录
    这篇文章主要介绍了Vista如何实现自动登录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。            ...
    99+
    2023-06-14
  • Django如何实现简单登录
    这篇文章主要为大家展示了“Django如何实现简单登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Django如何实现简单登录”这篇文章吧。创建django项目创建项目的命令行语句: djan...
    99+
    2023-06-25
  • java如何实现用户登录
    在Java中,可以使用以下步骤来实现用户登录功能:1. 创建一个用户类,包含用户名和密码属性,以及相应的getter和setter方...
    99+
    2023-08-30
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作