如何在浏览器中为 JS 代码获取长期存在的身份提供者令牌

How to get long-lived indentity provider tokens for JS code in browser

我正在使用 Facebook、Amazon、Twitter、google 和 Cognito 实现 Js 浏览器端代码登录。

我已经到了可以获得所有 4 个客户端令牌的阶段,但问题是这些令牌的有效期很短,会在 1-2 小时后过期。

研究表明Google令牌仅持续1小时,要延长寿命需要服务器端代码。

FB 令牌持续 2 小时,自动刷新,但仅在用户登录时有效。下次用户回来时令牌将过期(比如 2 天后)。再一次,这需要服务器端代码来获得更长寿命的令牌。

Amazon 令牌的有效期为 1 小时,而 Twitter 令牌不会过期。

感谢所有帮助(文档链接、经验等)。

浏览器上的 JS(不是 node.js)

使用 Cognito,但据我所知,它对令牌的寿命没有任何影响。

也欢迎指正。

尝试在浏览器中延长短期访问令牌不是一个好主意(尽管这是可能的,至少对于 FB 而言),因为那样你就必须在你的 JS 中暴露你的应用程序的秘密应用程序,理论上每个人都可以从中窃取它。

这样您可能会失去对社交应用的访问权限。因此,在服务器端执行此操作更有意义。

Note that because this request uses your app secret, it must never be made in client-side code or in an app binary that could be decompiled. It is important that your app secret is never shared with anyone. Therefore, this API call should only be made using server-side code.