技术专项
SSO
00 min
2024-8-20
2024-8-21
password
tags
type
status
date
slug
summary
category
icon
😀
文章前言:在公司中,可能存在很多内部系统,为了实现统一、提升维护性和提高安全性,故接入SSO
 

背景

Token是什么

Token也叫令牌简单来说是服务端为验证用户身份而生成的一串有时效性信息的字符串。
当用户第一次登录后,服务器生成一个Token将此Token发送给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

Token的作用是什么

对服务端的接口进行权限控制,token是请求的有效凭证,设置有效期防止永久使用~

过期处理策略

用户登录后,无状态token过期后,是续约还是重新登录?
  1. 对于中小型系统,一般选取重新登录~
  1. 对于大型系统,一般选取某种续约机制进行续约,提升用户体验~

登录时序图

notion image
但这种机制下,需要用户重新登录,影响用户体验~最理想的状态是自动续约~

自动续约

要实现token的自动续约,要考虑何时触发续约?
  • 永久token,只要客户端不删除就一直可用,但浪费内存和使用频繁容易泄漏
  • 濒临过期token自动续约,服务端每次都检查用户token是否快要过期,过期后key续约(expire),但频繁使用容易泄漏
  • 濒临过期生成新token,返回,解决了token泄漏问题但是并发场景更新出现错误
  • 长短token,解决了token泄漏问题

长短token

长短token,长短指的是有效时间,短token用于请求资源,长token用于获取新token,只有当长token过期时用户才需要重新登录~
优点:短token频繁使用,长token只在特定场景使用不易泄漏

📎 参考文章

上一篇
数据结构
下一篇
放弃TCP,拥抱QUIC