有关access_token与refresh_token 理解

发布时间 2023-07-07 12:44:38作者: 剧里局外

下面是对接各种平台api的流程

一般操作流程是下面的

1始通过用户授权获取code ,

2 然后通过code 获取到  access_token 和 refresh_token     

3 访问api 必须携带  access_token

 

举例

access_token :aaaa
expires_in :10分钟
refresh_token  :   bbb
refresh_expires_in  : 1小时

就是用户登录成功后 10分钟后 access_token就失效了,不能再做操作平台数据,如果要访问平台就是要重新 access_token。

如果没有 refresh_token  ,那么我们必须重新走 上面1,2,3 三个步骤,获取新的 access_token。

有了refresh_token ,在上面一个小时之内。我们就可以用refresh_token  直接获取新的access_token。这样就省略了用户授权。

一小时后refresh_token失效了,则需要用户授权获得code ,再通过code 获取  access_token

https://open.taobao.global/doc/doc.htm#?nodeId=28905&docId=119487

通过 「/auth/token/refresh」 返回的数据结构与通过授权代码获取访问权限返回的数据结构相同。您将获得新的「access_token」和「refresh_token」。您必须保存最新的「refresh_token」以获取新的「access_token」。请注意,access_token 的时长会被重置,但 refresh_token 的时长不会被重置。refresh_token 过期后,卖家需要重新授权您的应用程式来生成新的 access_token 和 refresh_token。

注意事项:
- 在 Refresh Token 过期前,卖家不需要再次授权。
- 如果 「refresh_expires_in」= 0,则无法刷新 Access Token。只有当 「refresh_expires_in」> 0时,才可以呼叫/auth/token/refresh API 来刷新 access token。
- 如果需要更新 Access Token,建议在 Access Token 过期前 30 分钟进行刷新。

https://open.taobao.global/doc/doc.htm#?nodeId=30660&docId=120906

 

 

Access Token和Refresh Token是OAuth 2.0授权协议中的两个关键概念。

Access Token(访问令牌)是用于访问受保护资源的令牌。当用户通过OAuth 2.0授权流程进行认证后,授权服务器会颁发一个Access Token给客户端应用程序。这个令牌通常具有短暂的有效期,
例如1小时。客户端应用程序使用Access Token来向资源服务器发送请求并获取用户的数据。

Refresh Token(刷新令牌)是用于更新AccessToken的令牌。在OAuth 2.0授权过程中,授权服务器除了颁发Access Token外,还会颁发一个Refresh Token给客户端应用程序。
Refresh Token通常具有更长的有效期,例如30天或更久。客户端应用程序可以使用Refresh Token向授权服务器请求新的Access Token,而无需再次请求用户的授权。
这使得客户端应用程序在Access Token过期之后可以自动获取新的Access Token,从而实现持续的访问。

简而言之,Access Token用于临时访问受保护的资源,Refresh Token用于获取新的Access Token,以延长访问权限。它们一起提供了安全和可控的访问机制,
同时允许用户在一定时间范围内授予应用程序访问权限,而无需频繁输入凭据。

参考:https://juejin.cn/post/6844904180470022151