2013-08-27 5 views
1

Devise & omniauth-reddit gem을 사용하여 Reddit에서 oAuth를 구현하려고합니다.Reddit API의 잘못된 redirect_uri 매개 변수

로컬 URL을 & api 키로 전달하는 것 같습니다.

https://ssl.reddit.com/api/v1/authorize?response_type=account&client_id=API_KEY&redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Fusers%2Fauth%2Freddit%2Fcallback&scope=identity 

내가 얻을 응답은 그러나 : 나는 127.0.0.1:3000에 redirect_uri로뿐만 아니라 호스팅 URL (Heroku가)를 설정했지만, 아무 소용에 한

forbidden (reddit.com) 

you are not allowed to do that 
— invalid redirect_uri parameter. 

.

그래서 지금은 잘못된 URL을 제공하고 있거나 매개 변수를 전달하지 않아도되는지 이해할 수 없습니다.

도움 주셔서 감사합니다.

답변

1

OAuth 서버 (거의 항상)에는 콜백 주소를 등록해야합니다. 그거 했니? 그들은 redirect_uri에 보낸 내용이 입력 한 내용과 일치하는지 확인합니다. 레딧에서 :

는 그냥 테스트. 당신은 하나 개의 세그먼트를 놓치는 경우에

http://127.0.0.1:3000/users/auth/reddit/callback

, 그것은 그 오류를보고합니다 : 당신은 정확한 콜백 URL을 입력해야합니다.

+0

물론, I've 모두에 redirect_uri로 설정 시도 http://127.0.0.1:3000 및 http://projectx.com –

+0

죄송합니다,이 아니었다 명확한. 정규화 된 URL을 사용해 보셨습니까? 후행 슬래시? 때로는 서버가 비교할 때 까다 롭습니다. –

+0

+1 redirecr uri 사이트가 전송되는 사이트와 일치해야한다는 점에 유의하십시오. 나는 완전히 새로운 uri를 보내고 있었지만 reddit에 환경 설정을 업데이트하는 것을 잊었다. –

4

확인. 그래서 난 그냥 레딧 API와 자극 재미 약간의 특질을 파악 :

이 밝혀 잘못된 client ID이 있다면 그것은 또한 — invalid redirect_uri parameter 오류를 반환합니다! 분명히, 나는 그것이 바로 응용 프로그램 이름 아래의 간편한 미스 ID의의 client_id

대신 secret

NOPE 같은 일이라고 생각했다. 적절한 ID를 사용하면 모든 것이 작동합니다. . . 내가 질문에 지적

counter-intuitive

+0

참고 : "비밀"을 ID로 사용한 적이 있다면 비밀은 더 이상 비밀이 아니며 새 OAuth2 클라이언트를 만들어서 새로운 ID와 비밀을 생성해야합니다. – kemitche

관련 문제