며칠전 오픈아이디 귓속말 OAuth에 대한 문의가 들어왔다.
다름이 아니라 OAuth 인증이 실패한다는 것. 원인을 분석해보니 오픈아이디 귓속말의 OAuth 구현의 문제여서 다른 일 다 제쳐두고 이를 열심히 뜯어고치고 있다. 문제는 OAuth Core 문서의 Section 5.2를 완벽히 구현하지 않아 생긴거였다. 테스트해본 OAuth consumer lib은 ruby와 java 밖에 없었는데, 이번에 들어온 지원요청은 Actionscript 3으로 구현된 OAuth 구현체(as3oauth)였는데, as3oauth는 oauth 인증 데이터를 Authorization 헤더에 실어 나르는 게 아니라 QueryString에 담기 때문이였다.
Section 5.4.1의 Authorization 헤더로만 인증을 수행하고, QueryString이나 POST로 도착한 oauth 인증 데이터들은 쌩깠다는 것. 귓속말 OAuth 인증을 한큐에 통과하지 못하고 애쓰신 많은 개발자분들에게 미안한 마음 감출 길이 없다. -_-;; 지금 귓속말의 OAuth protected resource 접근은 GET querystring과 Authorization 헤더를 둘 다 지원한다. 안타깝게도 POST 데이터로 넘기는 것은 아직 처리하지 못한다.
자 그럼 AIR 1.1에 포함된 WebKit 이 mx:HTML라는 가면을 쓰고 보내는 HTTP Header는 어떻게 생겼는지 구경해보자.
Referer - 리퍼러 스킴은 http가 아닌 app로 온다. swf 명이 test.swf 일 경우 app:/test.swf 형태를 가진다. 뭔가 맘에 안든다. app 란 스킴을 AIR가 독점한 기분이랄까?
Accept - video/mp4;q=0.9 와 audio/mp4 가 있는 것이 매력적이다
. 물론 flv는 당연히 포함이다.
x-flash-version - 플래시 플레이어 버전을 보내준다. 최근 공식 릴리즈인 9,0,124,0 이 도착했다.
User-Agent - 보통 이것을 궁금해하지 않을까 싶다. Mozilla/5.0 (Windows; U; ko-KR) AppleWebKit/523+ (KHTML, like Gecko) AdobeAIR/1.1 가 왔다. AppleWebKit _
덕분에 pc에 AIR SDK도 깔고.. 오랜만에 actionscript 구경하게 됐다. 왠지 어색하지 않다. 자바 개발자들이 어렵지 않게 넘어갈 수 있는 플랫폼이리라.