1

我正在创建一个应用程序,我正在尝试使用 eventbrite 对用户进行身份验证。参考文档,我在我的应用程序中包含了 javascript,它在我的应用程序中生成了一个CONNECT WITH EVENTBRITE链接。

当我单击此按钮时,它会将我带到 url:

https://www.eventbrite.com/oauth/authorize?response_type=token&client_id=xxxxxxxxxxxx

(这里的客户端 ID 是我的应用程序的 eventbrite 应用程序密钥。)

当用户允许应用程序访问 evenbrite 帐户时,它会使用以下 url 将我重定向到我的应用程序:

http://localhost:3000/#token_type=Bearer&access_token=yyyyyyyyyyyyyyyyyyyy

我希望 url 中的访问令牌访问用户的信息。我尝试使用URI解析 url 。但我没有发现它是最好的方法。任何人都可以告诉我一个从上面的 url中提取access_token的好解决方案。

4

1 回答 1

1

对于服务器端 OAuth2.0,我会在您的初始 URL 中使用 response_type=code :

https://www.eventbrite.com/oauth/authorize?response_type=code&client_id=xxxxxxxxxxxx

要查找 access_code,请从查询字符串中获取“代码”参数:

require 'uri'
uri = URI("http://localhost:3000/?code=XVYMCZOHM4D2GBXTJZG6")
access_code = uri.query.split('&')[0].split('=')[1]

下一步是向https://www.eventbrite.com/oauth/token进行服务器端 POST,其中包含临时 access_code、您的 client_secret 和一些其他详细信息(此处概述:http://developer.eventbrite。 com/doc/authentication/oauth2/ )

code=THE_USERS_AUTH_CODE&client_secret=YOUR_CLIENT_SECRET&client_id=YOUR_API_KEY&grant_type=authorization_code

用户的 access_token 应该在 POST 响应中可用。

于 2012-09-11T17:40:26.320 回答