Ruby的rest-client如何用于OAuth 2?

时间:2018-10-11 10:12:36

标签: ruby oauth-2.0

我正在尝试使用gitLab Api为Angular 6实现OAuth 2注册。其网站上有一些代码可用于获取基于Ruby的access token。如果有人让我知道如何获得此access token,我将非常高兴。

OAtuth 2 for gitLab说,我可以获得秘密codeYOUR_UNIQUE_STATE_HASH。我设法按照他们的指示。

要获得access token,gitLab发布了一些Rubi [sic]代码,我不明白,也不知道如何在angular中实现。

以下是说明:

  

拥有授权码后,您可以使用该码请求一个access_token,然后您就可以使用任何HTTP客户端。在以下示例中,我们使用Ruby的rest-client:

parameters = 'client_id=APP_ID&client_secret=APP_SECRET&code=RETURNED_CODE&grant_type=authorization_code&redirect_uri=REDIRECT_URI'
RestClient.post 'http://gitlab.example.com/oauth/token', parameters

# The response will be
{
 "access_token": "de6780bc506a0446309bd9362820ba8aed28aa506c71eedbe1c5c4f9dd350e54",
 "token_type": "bearer",
 "expires_in": 7200,
 "refresh_token": "8257e65c97202ed1726cf9571600918f3bffb2544b26e00a61df9897668c33a1"
}

如果有人解释这个代码片段,我会很好。

1 个答案:

答案 0 :(得分:0)

代码段基本上已经如前所述。您需要使用客户端ID和客户端密钥以及成功的用户身份验证后返回的代码来生成访问令牌(或承载令牌)-该访问令牌基本上是令牌,您将在以后进一步使用代表用户使用gitlab。
OAuth通过确保您作为开发人员使用您的客户端ID和client_secret进行请求,来确保未经授权的攻击者无法使用该客户端代码。

RestClient.post 'http://gitlab.example.com/oauth/token', parameters将发送该POST请求,然后Gitlab将返回带有访问令牌及其有效期的响应。