我需要使用Google 验证用户 电子邮件和密码。我正在使用App Engine + Java环境。 Google API中是否有任何规定?
目前我正在使用
ContactService client = new ContactService ("yourCompany-yourAppName-v1");
client.setUserCredentials("user@example.com", "pa$$word");
我需要更换此Google API。 我需要使用Google而非应用程序对用户进行身份验证。
请建议我怎么做。
答案 0 :(得分:1)
在您的上一条评论中,您说Google用户名和密码已输入客户端并在服务器中验证。这是不可能的,谷歌已经弃用了应用程序捕获密码的能力,这非常好
唯一的方法是使用oauth2,但是,除此之外,您需要传递一个特殊参数&max_auth_age=0
。
在这一点上,这个问题基本上与此重复:No prompt for re-authentication with OAUth2. Why and how to force it?但是我没有标记重复,因为你的情况不同。
详细解释oauth并不是这个答案的一部分,正如官方文档和许多指南中所解释的那样。不要使用内置的appengine userService。而是配置appengine页面,使它们全部公开并在顶部实现oauth2,例如使用现有的google + javascript登录库(你不确定那些是否允许你设置max_auth_age参数。如果没有,你需要滚动你自己的oauth2“客户端在该流程中,客户端每次都会看到google登录页面,并且在客户端流程完成后,客户端将最终获得一个访问令牌,这是它发送给服务器以验证用户输入了正确的用户名和密码。如果你包含正确的范围(userinfo.email范围),那么服务器可以使用该访问令牌向谷歌询问生成令牌的用户名,因此你已经验证客户端确实登录了谷歌你知道他们的电子邮件。
但是你不会收到密码。足够的信息来验证用户。
答案 1 :(得分:0)
问题不是很明确,我会尝试以两种方式回应。
1)使用自定义用户名和密码验证appengine上的用户。
要做到这一点,你需要"经典"方式,我建议你使用像他的模块和#34; spring-security"这样的框架,看看this sample。
2)使用Google帐户对appengine上的用户进行身份验证。
这是我认为最好的方式,您只需要关注this指南。