我正在创建一个应用程序,我尝试使用eventbrite对用户进行身份验证。参考doc我在我的应用程序中包含了javascript,它在我的应用中生成了 CONNECT WITH EVENTBRITE 链接。
当我点击此按钮时,我会转到网址:
https://www.eventbrite.com/oauth/authorize?response_type=token&client_id=xxxxxxxxxxxx
(此处客户端ID是我的应用程序的eventbrite应用程序密钥。)
当用户允许访问evenbrite帐户的应用程序时,它会使用以下网址将我重定向到我的应用程序:
http://localhost:3000/#token_type=Bearer&access_token=yyyyyyyyyyyyyyyyyyyy
我希望网址中的访问令牌能够访问用户的信息。我尝试使用 URI 解析网址。但我没有找到最好的方法。任何人都可以告诉我一个很好的解决方案,从上面的网址中提取 access_token 。
答案 0 :(得分:1)
对于server-side OAuth2.0,我会在您的初始网址中使用response_type = code:
https://www.eventbrite.com/oauth/authorize?response_type=code&client_id=xxxxxxxxxxxx
要查找access_code,请从查询字符串中获取“code”参数:
require 'uri'
uri = URI("http://localhost:3000/?code=XVYMCZOHM4D2GBXTJZG6")
access_code = uri.query.split('&')[0].split('=')[1]
下一步是使用临时access_code,client_secret和一些其他详细信息(在此处概述:https://www.eventbrite.com/oauth/token)对http://developer.eventbrite.com/doc/authentication/oauth2/进行服务器端POST。
code=THE_USERS_AUTH_CODE&client_secret=YOUR_CLIENT_SECRET&client_id=YOUR_API_KEY&grant_type=authorization_code
用户的access_token应该在POST响应中可用。