google-signin - 我应该使用 GoogleIdToken (jwt) 还是将其替换为另一个服务器发布的 jwt?还有关于客户 ID(“aud”)的问题
问题描述
我正在使用 java 的"com.google.api-client" % "google-api-client"
服务器来使用 OAuth 进行注册和登录。我有两个问题:
- 我应该重新使用谷歌身份验证令牌作为我的服务器 jwt 吗?
使用 Google 的令牌生成,我的服务器无法验证是否过期。我目前的计划是使用 google 令牌让人们登录(并使用 java 库验证他们的令牌),然后发出我自己用于会话的 jwt。
这是 google-signin 的标准设计吗?或者服务器是否打算重新使用谷歌令牌来处理会话?
- 有没有办法对我的
aud
(客户端标识符)进行编码/加密?
在客户端上生成令牌需要我将我aud
的(客户端的 google 开发人员 ID)提交到 google-signin 服务器。当我创建这个标识符时,我没有提供谷歌可以用来解密这个值的秘密。这个值是公开的吗(可以在使用我的应用程序的任何浏览器上看到)?
我的问题是服务器端的开发人员文档要求您检查aud
google 令牌声明数据中的值。但是,由于此令牌是通过任何应用程序使用 google-signin 库可以解码的编码发送的 - 存在问题。
有没有办法解决这个问题?似乎任何有权访问我的客户端的人都可以使用他们的浏览器来欺骗登录作为我的客户端 ID。
解决方案
推荐阅读
- azure - 我们应该为所有正在开发的产品使用一个 Azure 容器注册表 (ACR),还是每个产品使用一个 ACR?
- excel - 访问 VBA 传输电子表格的可见性
- c# - c#一个类用于所有winforms文本框和组合框事件,无需直接调用
- javascript - 这是在2020年取消表单提交的正确方法吗?
- sweetalert2 - 在“then”中显示验证消息,而不是自动关闭 Swal
- javascript - 我可以在哪里将 JWT 令牌存储在 React js 中以验证应用程序后端的各种路由?
- angular - Angular 9 Karma-Jasmine 测试不适用于 ViewChild
- php - 清理浏览器中的当前页面 URL
- r-markdown - rmarkdown results = "asis" 开始用 html 代码添加 "```{=html}"
- python - ImportError:无法从 PIL 导入名称映像