首页 > 解决方案 > 如何在安全服务器的验证阶段区分 refresh_token 和 access_token?

问题描述

我知道概念和目的的区别,但在语法层面会发生什么?

让我们假设一个带有基本令牌响应的登录端点:

http://acme.com/login

{
    "access_token": "AYjcyMzY3ZDhiNmJkNTY",
    "refresh_token": "RjY2NjM5NzA2OWJjuE7c",
    "expires_in": 3600
}

这两个令牌都是由安全服务器使用其算法(秘密和声明)生成的

所以当 access_token 过期时,我需要使用一些端点来更新它

http://acme.com/oauth/token

发送 refresh_token


在这一点上产生了我的问题

假设这些令牌具有不同的字符串值和不同的过期时间,但它们是使用相同的秘密、声明或算法生成的

而且我需要在安全服务器后端实现刷新令牌生成和验证。

如何区分 access_token 和 refresh_token ?


当前的解决方法

仅为 refresh_token添加一个额外的声明(例如type=refresh),因此当我在安全服务器中接收到令牌字符串并对其进行解码时,此声明对于确定接收到的字符串是否是 refresh_token 而不是 access_token 很有用。

标签: securityoauth-2.0jwtauth0stormpath

解决方案


推荐阅读