为了账号安全,请及时绑定邮箱和手机立即绑定

自定义加密令牌Token实现单点登录与注销

标签:
PHP WebApp

前言

在日常的业务中,登录功能是非常常见的,除了最简单的cookie校验登录与session会话实现登录之外,针对较复杂的场景还可以使用更高安全的自定义加密令牌token来实现登录功能,此文将会详细介绍这种登录系统的实现方式。

什么是单点登录?

单点登录(Single Sign On),简称为 SSO,指的是应用于多个业务系统中的一种登录机制,在某个应用系统登录一次,就可以访问授权的其他同类应用系统。

比如说,你要进入学校的选课系统查选课,第一次进入的时候,要求你输入学号密码登录。查完选课之后,你又想进入信息系统去查成绩,这时候直接进入信息系统,就能识别你之前的登录信息,不需要再次重复登录,这就是一种单点登录系统。

同理,如果你是先点击进入信息系统查成绩,第一次进入也会要求输入学号密码登录。之后从信息系统,再进入选课系统也就能直接进入了,不需要再重复登录。

简而言之,就是一种 登录一次实现多系统访问 的登录机制。

实现原理是什么?

登录的本质,就是一种用户识别模式,通过用户提交的登录信息来识别用户。

单点登录中,不同的系统,都需要识别出同一个用户,所以需要专门的通用识别凭证令牌 以及一个单独的认证系统,用于完成这个用户识别。

每个应用系统不再需要自行识别用户,获取用户信息,而是接入统一认证系统,根据是否有令牌判定登录状态,根据令牌有效验证判定用户信息。

比如说,学生进入选课系统时,选课系统会检查,当前的浏览器里,是否有一个专门的登录凭证令牌(这个令牌可以取名叫token或者ticket)。如果没有这个令牌,就会跳转到登录页面,要求用户输入信息登录。

用户输入登录信息之后,选课系统会把信息数据发到认证系统,由认证系统进行用户校验。这时候,认证系统就会去检查账号密码,并且告诉应用系统(此处为选课系统),用户的账号密码是否正确,是否有账户异常。

如果校验信息无误,认证系统就会生成一个专门的登录凭证令牌,最终返回保存到用户的浏览器中。

此时,重新进入应用系统(此处为选课系统),应用系统会检查是否存在登录凭证令牌

如果已经获取了这个令牌,应用系统就会让统一认证系统进行令牌验证,校验这个令牌是否有效

统一认证系统的判定有效,并且返回用户信息之后,应用系统才会根据这个用户信息来放行用户进入。

整体流程如下图所示:

图片描述

(未完待续)

实现细节与流程

登录信息的传输

用户表的设计

用户令牌的生成

用户令牌的附属功能

用户令牌的传输

用户令牌的保存

用户令牌的校验

业务系统的放行

实现示例

点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
8345
获赞与收藏
253

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消