请求第三方 Token,如何保证每次使用的 Token 有效?

2021-10-15 15:20:53 +08:00
 icelo

现在有一个需求如下:

需要请求第三方的 API 去获取一个 Token,但是这个 Token 会失效,失效时间未知。在其他业务上需要请求第三方接口需要携带上这个 Token,现在需要保证请求第三方接口时,这个 Token 是有效的。

每次在请求之前都会更新这个 Token: 问题:1 、会存在并发问题(虽然说这个 token 被修改没影响); 2 、每次请求消耗网络资源,并不是一个最优解

起一个定时任务去定时的刷新这个 Token 问题:会引入新的框架,存在的风险未知,可用性不高!

需要在解决问题的情况下,尽量避免使用其他组件!(楼主用的是 Java 写的后端) 有无大佬能够给我一个不错的解决方案?

3168 次点击
所在节点    程序员
24 条回复
IvanLi127
2021-10-15 18:59:35 +08:00
等得起就发现过期了重新获取然后重试接口,等不起就问对方 token 有效期至少多久,根据这时间来定时刷新 token 。总不能对方 token 随机过期吧。
Pythoner666666
2021-10-15 19:07:07 +08:00
正常请求,token 过期直接重新获取刷新一遍,重新获取的时候记得加锁,防止并发,结束。
yidinghe
2021-10-15 19:26:09 +08:00
有没有效是对方说了算,所以你没办法保证每次都一定有效,只能在发现无效之后去尝试刷新。
ltfree
2021-10-16 10:07:14 +08:00
方案 1 可行,爬虫项目更换 ip 就是这套逻辑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/808047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX