如何在这些 Google OAuth2 抽象 servlet 中正确实现抽象 getUserId(request) 方法?
正如代码所说,它用于查找和存储谷歌凭据。我见过返回会话 id 的示例,但会话到期后将无法正常工作:
- 用户访问 auth url,他的访问和刷新令牌存储在 sessionId 键下的存储中
- 在会话生命周期内,一切正常,因此如果该用户再次访问 auth url,则使用相同的 sessionId 键找到他存储的令牌
- 但是在会话到期(服务器重启等)之后,当该用户再次访问 auth url 时,他得到了新的 sessionId,没有找到存储的令牌,所以新的令牌(这次只有访问令牌)被请求并再次存储在新的 sessionId 键下
所以问题是 - 如何生成适用于所有情况的 userId?GoogleAppEngine 实现使用登录用户,这非常好 - 但是我如何仅从 HttpRequest 参数生成这样的 userId 呢?
顺便说一句,这个(https://developers.google.com/gmail/api/auth/web-server)python实现似乎会生成并行用户信息请求以手动获取用户电子邮件......