登录双Token设计机制,背后的安全策略

B站影视 港台电影 2025-09-01 20:56 6

摘要:登录功能是我们常见的功能,无论是 Web 应用还是移动设备,用户的认证和授权是确保应用安全性的重要环节。单 token 机制但从应用的角度已经完全可以满足功能的完成,但是从安全性角度考虑的话,还是有安全隐患的。

【编程朝花夕拾】,可获取首发内容。

登录功能是我们常见的功能,无论是 Web 应用还是移动设备,用户的认证和授权是确保应用安全性的重要环节。单 token 机制但从应用的角度已经完全可以满足功能的完成,但是从安全性角度考虑的话,还是有安全隐患的。

登录后访问资源需要携带 token 作为登录凭证,因为每次请求都会携带 token ,一旦被他人截获,就会就当前的用户的所有资源信息泄露。设置 token 的有效期,可以提高应用的安全性。有效期过短,系统的可用性就会降低,需要用户不断登录;有效期过长,一旦被截获,容易泄露数据。这就需要设计者在安全性和可用性上权衡。

小孩子才做选择,成年人可不可以都要。当然可以。双 token 机制闪亮登场,满足我们既要还要的需求。下来我们一起了解一下双 token 机制。

双 token 机制是通过两个 token 分工合作,一长一短,功能各不相同,相互配合完成身份验证的机制。

访问令牌(access_token):

该令牌是一个短令牌,主要用于访问受保护的资源,也就是登录之后才能访问的资源。短令牌不仅有效期短,长度也会相对较短。短的有效期保证安全性,短的长度节约了传输资源。每次访问受到保护的资源都需要携带。

刷新令牌(refresh_token):

该令牌是一个长令牌,主要是在访问令牌过期后,携带次令牌获取新的访问令牌和刷新令牌,客户端使用新的访问令牌继续访问,无需重新登录。原则上只能使用一次,不会频繁的在网络上传输,降低了被窃取的风险。长令牌不仅有效期相对长,长度也会相对较长,增加记忆的难度,这也是安全性的考虑。刷新令牌一旦过期,用户就需要重新登录。

微信的登录授权的流程就是使用了双 token 机制:微信授权接口文档

主要分为两个阶段:获取令牌和刷新令牌

获取令牌阶段:

用户登录,服务端验证用户信息,验证通过之后,签发 access_token 和 refresh_token ,设置有效期,并返回给客户端。

刷新令牌阶段:

用户访问受保护的资源,服务端校验 access_token 过期,返回给客户端,客户端发起刷新令牌的请求,服务端再次验证 refresh_token 。若过期,则让客户端重新登录,若没过期,则重新签发 access_token 和 refresh_token ,设置有效期,并返回给客户端。

双 token 机制弥补了单 token 的不足,它是如何保证安全的呢?

短有效期的 access_token ,因为频繁的传输,被窃取的可能就会变高,所以设置较短的有效期,即便被窃取了,也不会造成严重的损失。长有效期的 refresh_token ,只有在短 token 过期的时候才会被传输,所以减少了被窃取的可能性。而长 token 本身也有有效期,服务器端也会验证长 token 的有效性。长 token 只能使用一次,用完即失效,同样增加了安全性。在用户退出登录、修改密码、挂失等操作下,可以对 refresh_token 进行撤销操作,防止被恶意使用。05 小结

来源:墨码行者

相关推荐