使用XOAuth 2.0进行Gmail身份验证

时间:2015-03-23 10:12:53

标签: java oauth-2.0 gmail

我想在Java中为我的Web应用程序实现XOAuth 2.0。

我的应用程序要求用户输入用户名和密码。现在使用这些凭据我想通过Gmail验证用户。

请建议库,以及如何实现它? 我是使用Gmail进行身份验证的新手。需要一些建议。

1 个答案:

答案 0 :(得分:-1)

据我所知,OAuth 2.0的目的是防止用户凭据泄露到第三方应用程序中。

abstract flow shows客户端(第三方应用)如何使用access_token(使用其中一种授权类型检索)来访问资源。

规范还定义了要使用的基本HTTPS调用,例如在authorization code grant type的情况下(我认为此流程最适合您)。这有2个请求,一个用于code(用户代理重定向用于将代码发送到第三方应用),另一个用于access_token

授权代码请求和响应

 GET /authorize?response_type=code&client_id=s6BhdRkqt3&state=xyz
        &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1
 Host: server.example.com

 HTTP/1.1 302 Found
 Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA
               &state=xyz

令牌请求和响应:

 POST /token HTTP/1.1
 Host: server.example.com
 Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
 Content-Type: application/x-www-form-urlencoded
 grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
 &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb

 HTTP/1.1 200 OK
 Content-Type: application/json;charset=UTF-8
 Cache-Control: no-store
 Pragma: no-cache

 {
   "access_token":"2YotnFZFEjr1zCsicMWpAA",
   "token_type":"example",
   "expires_in":3600,
   "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
   "example_parameter":"example_value"
 }

因此,您无需向用户询问GMail凭据。

Here您可以找到符合OAuth 2.0标准的应用程序的弹出式安全示例。

我希望我能提供帮助。