2012-09-11 7 views
1

eventbrite를 사용하여 사용자를 인증하려고하는 응용 프로그램을 만들고 있습니다. 참조의 doc 내 응용 프로그램에서 자바 스크립트를 포함하고 EVENTBRITE 내 애플 리케이션에 연결 링크를 생성합니다.OAuth2.0 레일스를 사용하는 이벤트 브리트 인증

나는 그것은 URL로 나를 취이 버튼을 클릭하면 :

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

(여기서 클라이언트 ID가 내 응용 프로그램의에서 Eventbrite 응용 프로그램 키입니다.)

는 사용자 수 있도록 허용하는 경우 응용 프로그램은 evenblite 계정에 액세스하기 위해 다음 url을 사용하여 응용 프로그램으로 리디렉션합니다.

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

사용자 정보에 액세스하려면 액세스 토큰을 URL에 넣고 싶습니다. 나는 URI을 사용하여 url을 분석하려고 시도했다. 하지만 그렇게 할 수있는 최선의 방법을 찾지 못했습니다. 아무도 내게 위의 URL에서access_token 추출하는 좋은 해결책을 말해 줄 수 있습니까?

답변

1

server-side OAuth2.0, 나는 초기 URL에 RESPONSE_TYPE = 코드를 사용하십시오 :

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] 

다음을 서버 측 POST를 https://www.eventbrite.com/oauth/token으로 임시 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 

POST 응답에서 사용자의 access_token을 사용할 수 있어야합니다.

+0

게시 요청을하는 방법입니다. uri = URI ('http://www.eventbrite.com/oauth/token') res = Net :: HTTP.post_form (uri, 'code'=> 코드, 'client_secret'=> 'xxxxxxxxxxxxxxxxxxxxxxx', 'client_id '=>'xxxxxxxxxxxxxxxxxxx ','grant_type '=>'authorization_code '). 302 응답 코드 즉, 리다이렉션과 기본 URL로 리다이렉트 중입니다. https://www.eventbrite.com/oauth/token –

관련 문제