Java 使用Google对用户进行身份验证

Java 使用Google对用户进行身份验证,java,openid,google-oauth,google-openid,google-oauth-java-client,Java,Openid,Google Oauth,Google Openid,Google Oauth Java Client,我很难理解如何在我的REST服务中对用户进行身份验证。我计划使用谷歌登录(即Android)。我不太明白如何在我的服务器上验证用户。我不想拥有任何授权(除了验证用户的身份),我只想在收到请求时验证用户是他(或她)所说的那个人 我的理解是,用户将登录,从Google获得某种令牌,然后将该令牌连同他的请求发送到我的服务器,我将使用该服务器验证他的身份。然而,从我读到的内容来看,用户将在JWT(json web令牌)中对他们的请求进行编码,然后我将使用JWT验证他们的身份,而无需直接与Google服务

我很难理解如何在我的REST服务中对用户进行身份验证。我计划使用谷歌登录(即Android)。我不太明白如何在我的服务器上验证用户。我不想拥有任何授权(除了验证用户的身份),我只想在收到请求时验证用户是他(或她)所说的那个人

我的理解是,用户将登录,从Google获得某种令牌,然后将该令牌连同他的请求发送到我的服务器,我将使用该服务器验证他的身份。然而,从我读到的内容来看,用户将在JWT(json web令牌)中对他们的请求进行编码,然后我将使用JWT验证他们的身份,而无需直接与Google服务器交谈。我明白了吗

在谷歌的网站上,它说

如果不需要脱机访问,可以检索访问令牌并通过安全连接将其发送到服务器。您可以使用GoogleAuthUtil.getToken()直接获取访问令牌,方法是在不使用服务器OAuth 2.0客户端ID的情况下指定作用域


但是它没有说明服务器应该如何处理令牌。

您有一个android应用程序,允许用户通过Google+登录登录,然后这个android应用程序将调用您的REST API。您需要的是服务如何验证此请求。此Android客户端将使用令牌向您的服务发送请求,您需要验证此令牌以进行身份验证。我的理解正确吗


如果是这样,您需要验证发送到服务的令牌。在你的例子中,你提到的参考是针对谷歌API调用的;这是您自己的服务API调用。对于Android端,只需遵循参考,在您的服务端,您可以使用它对用户进行身份验证。

这正是我想要的。我不知道如何验证令牌(从而验证用户的身份)。您知道我是否仍应使用防伪令牌吗?是的,尽管建议不要求使用
状态
,但此参数应用于防止跨站点请求伪造。