迁移至有过期时间的离线访问令牌时,令牌交换更具弹性
当您将应用从不过期的离线令牌迁移至有过期时间的离线访问令牌(且无用户会话)时,如果丢失了迁移响应,您可以使用原始的非过期令牌重试交换,最多可在七天内恢复该响应。这减少了需要商户重新打开应用以恢复访问的频率,但您无需更改现有流程即可使其继续正常工作。
变更内容
当您将现有的非过期离线令牌迁移至有过期时间的离线访问令牌(且无用户会话)时,使用相同的原始令牌和客户端凭据进行符合条件的重试,将返回与初始交换相同的访问令牌和刷新令牌对。
在符合条件的重试中:
- Shopify 会返回相同的访问令牌和刷新令牌。
- Shopify 会在必要时延长访问令牌的有效期。
- Shopify 不会延长刷新令牌的有效期。
对于特定商店和应用,恢复操作在以下任一条件满足时结束:
- 自该原始令牌的初始交换之日起已过去七天。
- 您的应用成功刷新了已颁发的令牌对。
- 针对同一商店的后续令牌获取操作替换了该令牌对,例如新的授权码或 ID 令牌交换。
迁移后,原始的非过期令牌对GraphQL Admin API请求仍然无效。
受影响对象
此变更会影响那些在用户会话不存在的情况下迁移现有非过期离线令牌的应用程序,如在没有用户会话的情况下迁移现有令牌指南中所述。
为何重要
如果您的应用丢失了迁移响应或未能存储它,通常可以恢复访问令牌和刷新令牌,而无需要求商户重新打开应用并再次完成授权流程。
操作步骤
当您未收到或未能持久化迁移响应时:
- 在初始交换后的七天内,使用原始的非过期令牌和有效的客户端凭据重复相同的迁移请求。
- 将返回的访问令牌、刷新令牌和过期值一起持久化存储。
- 丢弃原始的非过期令牌,以防止您的应用再次尝试使用它。
如果重试返回invalid_subject_token,请通过ID令牌交换或授权码授予流程为该商店获取新令牌,然后相应地更新您存储的凭据。

