【发布时间】:2017-06-04 14:35:34
【问题描述】:
我在理解 oauth2 流程时遇到了问题。 用户(由 user_id 标识)在浏览器中启动 GoogleAccounts 连接。请求被传递给 Servlet,后者将重定向字符串发送到客户端 (Javascript),然后将用户重定向到该 Auth URL。 在用户同意时,响应将返回到回调 url(映射到 servlet)。 我的困惑是当回调 servlet 被调用时,我如何识别这个 authCode 属于哪个用户(user_id)? 我必须使用 oAuth2 的状态参数吗?
请帮忙。
【问题讨论】:
-
这可能是我所知道的最简单的方法是使用 Google plus api。 Http://developers.google.com/+/web/api/rest/latest/people/get 发送给我会得到一些关于当前认证用户的信息。将访问令牌发送到令牌验证端点也可以工作,但取决于您请求的范围
-
@DalmTo 我可能没有正确提出我的问题。这里有更多详细信息在我的网络应用程序中,由唯一 ID 标识的(经过身份验证的)用户尝试在浏览器上连接他的(一个或多个)谷歌帐户结尾 。服务器端 (java) 启动 oauth 流程将用户重定向到 authurl。用户同意后,在我的回调 servlet 上,我想确定我的应用程序的哪个用户(由唯一 id 标识)已启动连接此 google 帐户,以便我可以针对该用户存储此 google 授权。请帮忙,我应该使用 State paran
-
我认为您可以尝试 state 参数,因为它会携带 user_id 作为响应。它的描述说:在收到响应时提供可能对您的应用程序有用的任何状态。 Google 授权服务器往返此参数,因此您的应用程序接收到它发送的相同值。可能的用途包括将用户重定向到您站点中的正确资源,以及跨站点请求伪造缓解。 developers.google.com/identity/protocols/OAuth2UserAgent
-
是的,我认为这实际上是要走的路..我希望有人审查我的想法..想从谷歌开发人员那里得到一些答案。在这里见不到人
-
我目前正在使用 Sheets API,当我在 Web 服务器上部署应用程序时,在授权过程中遇到了问题。你能分享一些你是怎么做的代码吗?
标签: java oauth-2.0 google-oauth google-oauth-java-client