如何在这些Google OAuth2抽象servlet中正确实现抽象getUserId(request)方法?
正如代码所说,它用于查找和存储Google凭据。我已经看到了返回会话ID的示例,但在会话到期后无法正常工作:
所以问题是 - 如何生成适用于所有情况的userId? GoogleAppEngine实现使用已记录的用户,这非常好 - 但是如何从HttpRequest参数生成这样的userId?
BTW这个(https://developers.google.com/gmail/api/auth/web-server)python实现似乎生成并行userinfo请求以手动获取用户电子邮件...
答案 0 :(得分:0)
首先,确保您需要离线访问用户的凭据。
您引用所有这些示例使用登录用户的原因是因为用户ID 必需以将凭据存储在凭证存储中的正确用户。 在这些用例中,Google OAuth用于授权网络服务器,以便在用户的Google帐户中执行某些操作。
用户ID的一个想法是创建一个长寿命的coookie(使用安全随机生成器)并使用它来识别用户,这样你就可以知道他们再次访问网站时是谁,并且可以重复使用凭证(如果你问的话)用于离线访问)。这不是很强大,因为用户可以清除他们的cookie,但没有其他方法可以记录用户。
(是的,Google Oauth可用于登录用户,但您仍然在考虑每次都将用户发送给Google,因此您实际上并没有获得任何好处。)