为什么 google oauth 为本机应用程序提供刷新令牌,而不为 Javascript Web 应用程序提供刷新令牌?

时间:2021-04-27 14:17:30

标签: google-oauth

在阅读 google oauth API 的文档时,我发现它没有向 Javascript (JS) 网络应用程序提供刷新令牌,如下面的链接所述。它说“刷新令牌通常不用于客户端 (JavaScript) Web 应用程序。” https://developers.google.com/identity/protocols/oauth2/web-server

但是在下一页中,它向本机应用程序提供刷新令牌(以及客户端机密)。 JS Web 应用程序和本机应用程序都不是机密,这似乎很奇怪。难道也不应该向本机应用程序提供刷新令牌和客户端机密吗? https://developers.google.com/identity/protocols/oauth2/native-app

谢谢

1 个答案:

答案 0 :(得分:1)

客户端应用程序中的刷新令牌,任何人都可以在其中查看源代码并查看刷新令牌、客户端 ID 和客户端机密。这意味着任何人都可以创建一个新的访问令牌来访问数据。

如果我理解您所说的原生应用程序是什么意思,它们运行在用户机器上,理论上唯一会访问那台机器的人就是访问自己数据的用户。本机应用程序还可以更好地保护用户和其他应用程序的各种秘密。因此,尽管它仍然是一种暴露风险 - 风险显着降低。

如果您需要刷新令牌,请使用服务器端网络语言。