我有一个应用程序和注册到此应用程序的各种用户。我正在使用 Google服务将用户注册到我的应用程序。当用户尝试登录时,我使用用户 emailId 和 密码 <使用OAuth1
授权机制验证用户/强>
以下是我用于授权用户的代码,
public static RestResponse accountsClientLogin(String accountType, String email, String passwd, String service, String source) throws IOException {
String apiKey = GoogleAccountsServiceAuthenticator.getApiKey();
String[][] pathParams = new String[][]{};
String[][] queryParams = new String[][]{{"accountType", accountType}, {"Email", email}, {"Passwd", passwd}, {"service", service}, {"source", source}};
RestConnection conn = new RestConnection("https://www.google.com/accounts/ClientLogin", pathParams, null);
sleep(1000);
return conn.post(null, queryParams);
}
上面的代码非常适合我,但是当Google从OAuth1
转移到OAuth2
时,我也必须转移到OAuth2
。
我很困惑如何使用OAuth2
执行上述操作。我浏览了很多链接,但都是特定于应用程序的,我想使用 emailId 和 密码 来验证用户在我的应用程序的早期版本中做了。如何从OAuth1
迁移到OAuth2
?
答案 0 :(得分:0)
看起来您使用的是ClientLogin,而不是OAuth 1.0。我建议切换到OAuth 2.0。您可以使用Apache Oltu库来支持OAuth 2.0。如果您打算这样做,我可以帮助您提供示例代码。
答案 1 :(得分:0)
不能使用评论功能,这就是为什么直接在答案中写下我的建议。
此链接可能有助于您了解auth 2.0如何与Google配合使用。 https://developers.google.com/accounts/docs/OpenIDConnect
实际上谷歌使用open id connect作为一种机制来为您验证用户身份。您需要做的是将用户重定向到google auth服务器,用户将在google上登录,然后用户将被重定向回您的应用程序,并且通过重定向url,您的应用程序将收到一个名为token的随机字符串。 借助此令牌,您可以调用google rest apis来获取用户信息,例如在重定向期间实际登录谷歌的用户信息,从而了解登录用户。
以下是github https://github.com/jersey/jersey/tree/2.17/examples/oauth2-client-google-webapp
上的演示要运行演示,您需要使用google注册应用程序,该应用程序可以唯一标识您的应用程序。
答案 2 :(得分:0)
如果您不想自己做这件事,Google有两种选择:
Identity Toolkit如果您想支持多个身份提供商(加上简单的电子邮件和密码)。
Google Sign-in如果你只想要#34;使用Google登录&#34;功能