Google app engine 如何使用Google App Engine+;JAVA

Google app engine 如何使用Google App Engine+;JAVA,google-app-engine,jakarta-ee,google-api,google-apps,Google App Engine,Jakarta Ee,Google Api,Google Apps,我需要通过谷歌验证用户电子邮件和密码。我正在使用appengine+Java环境。谷歌API中是否有任何规定 目前我正在使用 ContactService client = new ContactService ("yourCompany-yourAppName-v1"); client.setUserCredentials("user@example.com", "pa$$word"); 我需要更换这个谷歌API我需要使用Google而不是应用程序对用户进行身份验证。 请建议我怎么做。问题不

我需要通过谷歌验证用户电子邮件和密码。我正在使用appengine+Java环境。谷歌API中是否有任何规定

目前我正在使用

ContactService client = new ContactService ("yourCompany-yourAppName-v1");
client.setUserCredentials("user@example.com", "pa$$word");
我需要更换这个谷歌API我需要使用Google而不是应用程序对用户进行身份验证。


请建议我怎么做。

问题不太清楚,我将尝试用两种方式回答

1) 使用自定义用户名和密码验证appengine上的用户

要做到这一点,您需要“经典”的方式,我建议您使用一个类似Spring的框架和他的模块“Spring security”,看看

2) 使用Google帐户验证appengine上的用户


这是我认为最好的方法,你只需要遵循指南。

在你的最后一条评论中,你说谷歌用户名和密码在客户端输入,并在服务器上验证。这是不可能的,谷歌已经不赞成应用程序捕获密码的能力,这非常好。
唯一的方法是使用oauth2,但另外还需要传递一个特殊参数&max\u auth\u age=0。 在这一点上,这个问题基本上是重复的:
但是我没有标记重复,因为你的情况不同。
详细解释oauth并不是这个答案的一部分,因为它在官方文档和许多指南中都有很好的解释。不要使用内置的appengine用户服务。相反,配置appengine页面,使其全部公开,并在顶部实现oauth2,例如使用现有的google+javascript登录库(您不确定这些库是否允许您设置max_auth_age参数。如果不允许,您需要滚动您自己的oauth2“客户端三条腿”流。在该流中,客户端每次都会看到google登录页面,客户端流结束后,客户端将收到一个访问令牌,该令牌将发送到服务器,以验证用户输入的用户名和密码是否正确。如果包含正确的范围(userinfo.email scope)然后服务器可以使用该访问令牌向google询问生成该令牌的用户名,这样您就验证了客户端确实登录了google,并且您知道他们的电子邮件。

但是您将不会收到密码。只有足够的信息来验证用户。

您不可能需要使用开放式身份验证。您可以在这里下载Google API java示例@lulliia哪一个?我刚刚检查了其中4个示例,它们使用Oauth2或公共API密钥。@ZigMandel我需要根据用户电子邮件和密码验证用户Goolge。我不需要对应用程序进行用户身份验证。编辑不再使其重复。撤回我的投票。我需要不想对app engine上的用户进行身份验证,我需要使用这些密码对其他用户进行身份验证。在我的回答中,这两种情况都有解决方案,您是否尝试过第一种1)一个?@ZigMandel我需要用Goolge根据用户电子邮件和密码对用户进行身份验证。我不需要用户认证的应用程序。这是谷歌禁止的。捕获用户密码也是一个非常糟糕的主意。这就是oauth存在的原因。我现在明白了,这不是我链接的那个一个副本,而是以前在其他网站上被问过的一个副本。@ZigMandel是的,这是谷歌禁止的。我不知道如何使用Oauth实现这一点?谢谢,我将使用OAuth2.0实现用户身份验证。