如何使用OAuth2验证用户

时间:2015-03-30 08:49:31

标签: java netbeans oauth oauth-2.0 google-oauth

我有一个应用程序和注册到此应用程序的各种用户。我正在使用 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

3 个答案:

答案 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;功能