2010-11-18 4 views
2

iPad 용 OAuth1.0a를 사용하는 앱을 개발하고 있습니다.내 OAuth 요청 서명이 서비스 제공 업체의 서명과 다릅니다.

내 문제는 내 request_token 요청에 대한 올바른 서명을 얻을 수 없다는 것입니다. 연결하려는 서비스에는 OAuth 매개 변수에 따라 가져야하는 서명을 확인할 수있는 디버깅 도구가 있습니다.

결과는 다음과 같습니다

  • 은 내가

  • 난의 OAuth에 대한 이해에 따라 서로 다른 서명

를 얻을이 있다는 것을 의미 권리 기반 서명 코드를 얻을 :

가있다 서명 기본 코드와 누가 옳고 누가 누가 옳은지 확인하는 열쇠에서 서명을 만들 수 있습니까? 당신의 도움에 대한

감사

답변

0

내 문제는 내 고객 키에 특수 문자 ('+'및 '=')가 포함되어 있으며 이러한 문자로 인해 공급자 및 OAuth iOS 프레임 워크의 서명이 서로 다릅니다.

나는 누가 옳았지만 결정을 내릴지 결정하려고 RFC를 살펴 보려고했습니다. 따라서 OAuth 코드를 해킹하여 공급자와 작동하도록하려고합니다. 내가 찾은 후에이 페이지에서 트릭을 나눌거야.

특수 문자 인코딩이 까다로울 수 있으며 서명 기반에 서명하기 위해 특수 문자를 인코딩하는 방법에 대한 의견이 있으면 언제든지 공유 할 수 있습니다.

+0

@Henry 안녕하세요, 내 IOS 앱에 RightSignature API를 구현하기위한 샘플을 제공해 줄 수 있습니까? – iDeveloper

0

이 문제가 될하지만 SHA를 생성하는 HMAC 방법에 내장 된 아이폰 OS를 사용하려고 할 가능성이 :

http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/CCHmac.3cc.html

은 무엇보다 가능성이 높습니다하는 서명이다 기본 문자열은 실제로 잘못되었습니다. 기본 문자열이 규격을 준수하는지 확인 했습니까? 여기에 귀하의 요청을 확인하는 데 사용할 수있는 좋은 대화 형 도구가있다 :

http://hueniverse.com/2008/10/beginners-guide-to-oauth-part-iv-signing-requests/

+0

유용한 링크에 감사드립니다. –

1

왜 그냥 바로 HMAC-SHA1 구성 요소보다는 OAuthConsumer을 모두 사용할 수 있습니까? 여러 다른 응용 프로그램에서 사용되는 잘 테스트 된 코드입니다. OAuthConsumer은 "잘된 것"이라고 말하고 싶습니다.

귀하가 유일한 고객이 아니라면 서비스 제공 업체가 잘못 될 것 같지 않습니다.

이렇게하면 암호화 코드를 사용하는 방법이 달라집니다. 내가 OAuth는 서명을 본 적이

일반적인 문제 :

  • 잘못된 사용 겉으로는 중요하지 않은 매개 변수
  • 기본 URL에서 매개 변수를 분리하지
  • 을 누락 매개 변수
  • 분류되지 않음 HTTP 방법
  • 리디렉션 또는 별칭. server.com에 연결했지만 원격 쪽에서는 자신을 api.server로 생각합니다.co.kr에서

당신이 할 수있는 또 하나의 작업은 다른 OAuth 서비스 인 Twitter와 같은 클라이언트 코드를 연결하는 것입니다. 코드가 트위터에 대한 올바른 서명을 안정적으로 생성한다면 다른 서비스에 대해 올바른 일을 수행 할 가능성이 높습니다. 이것은 (아마도) 귀하의 서비스에 문제가 있음을 의미합니다. 각 OAuth 구현이 고유 한 단점을 갖고있는 것처럼 보일 가능성이 높습니다.

+0

답장을 보내 주셔서 감사합니다. 실제로 전체 OAuthConsumer를 사용합니다. 그러나 서비스 제공 업체는 OAuth에 대해 매우 새롭다는 것을 알고 있습니다. 그러나 기술적 인 문제로 연락하거나 다른 개발자에게 연락하는 쉬운 방법은 없습니다. 그래서 내가 문제가 서비스 제공 업체와 관련이 있다고 생각하는 경향이 있습니다. 목록에있는 일반적인 문제 목록을 다시 확인하겠습니다. 그러나 모든 것이 저에게 도움이된다고 생각합니다. –

+0

@Dirty Henry 그냥 또 다른 몇 가지 제안을 생각하고 그들과 내 대답을 편집했습니다. –

관련 문제