首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    什么是单点登录?单点登录的三种实现方式

    单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因此要点也就以下两个:

    01

    一文读懂:什么是ID-Mapping

    ​以用户实体为例,可以表示该实体的ID类型包括UserId,DeviceId,IMEI等,不同ID可以获取到的阶段、生命周期均不相同。DeviceId伴随着用户的整个生命周期,但是同一用户使用不同设备时DeviceId不同,即使同一设备DeviceId也有可能因为刷机、重启等产生变动。UserId是用户登录之后系统分配的唯一标识,即使不同的设备只要UserId相同就会识别为一个用户,但UserId只能在登录后获取到,所以会损失用户登录前的行为数据。单独使用DeviceId或者UserId都不能完整地表达一个用户,如果可以将不同ID进行关联映射并最终通过唯一的ID标识用户,那么可以构建出一套统一的、完整的用户实体数据。ID-Mapping主要用于解决上述问题。

    02

    第三方API登录实现方案

    第一种 当用户点击第三方登录的时候,进行鉴权,并在用户表创建一个用户,保存其头像,openid等 不过这种方式只适用于一种三方登录,如微信登录,当涉及到多种登录时这种方式不不适用了,比如我们有三种登录方式 微信,QQ,微博 如果用上面的方法,当用户第一次点微信登录时我们会在用户表创建一个用户,并且自增了一个用户id:1 当用户第二次选择QQ登录的时候,我们又会在用户表创建一个用户,其实这两个”用户“是同一个人,但此时数据库又会增加一个用户 自增id:2 当用户某天选择了微博登录,此时数据库又增加一个用户 自增id:3 这三个用户都是同一个人,那么问题来了,怎么把他们关联到一起?

    01
    领券