2012-03-02 1 views
0

나는 Opera 용 확장 기능을 작성 중이며 Twitter OAuth API를 사용합니다. 나는 그것이 당황 스럽다는 것을 안다. 그러나 나는 확장자 안에 Javascript가있는 Twitter OAuth를 구현하고있다. OAuth와 프로가 아니기 때문에 저를 참아주십시오.OAuth 액세스 토큰 사용 방법 PHP로 인증하기 위해 자바 스크립트로 가져옴

하지만 여기에 내가하고 싶은 것이 있습니다. 트위터로 사용자를 인증 한 후에는 widget.preferences 오브젝트를 오페라 확장에서 사용할 수있는 액세스 토큰을 localStorage에 저장합니다. 지금 제가 확신 할 수없는 부분이 있습니다. 확장 프로그램에서는 댓글을 게시 할 수 있습니다. 주석은 확장자에서 데이터베이스의 테이블에 주석을 처리하고 삽입 할 서버의 스크립트로 게시됩니다.

내가 지금 알고 싶은 점은 댓글을 게시 한 사람의 사용자 이름이 댓글을 게시하고 내 확장 프로그램에 Twitter로 로그인 한 사용자의 실제 사용자 이름인지 어떻게 알 수 있습니까?

방금 ​​확장 프로그램에서 사용자 이름을 보낸 경우 요청에서 사용자 이름을 조작하는 것이 매우 쉬워서 가짜 사용자 이름이 주석과 함께 데이터베이스에 삽입됩니다.

확장명에서 주석을 게시 한 사용자의 액세스 토큰을 보낼 수 있습니다. 서버는 주석 데이터와 함께 메시지를 받게됩니다. 데이터베이스에 주석을 삽입하기 전에 Javascript 확장에서 보낸 액세스 토큰을 사용하여 해당 액세스 토큰이 나타내는 사용자의 Twitter 사용자 이름을 PHP로 검색 할 수 있습니까? 또는 액세스 토큰이 사용자가 인증 될 때마다 무작위로 만들어 지므로 이렇게 다시 사용할 수 없습니까?

답변

0

OAuth Echo은 API를 통해 Twitter ID를 확인하는 표준 방법입니다.

기본 흐름은 다음과 같습니다

  1. 확장은 계정/verify_credentials 요청에 서명하지만, 트위터에을 보내십시오하지 않습니다.
  2. 확장 프로그램은 서명 된 요청을 서버로 보냅니다.
  3. 서버가 Twitter에 요청합니다. 성공하고 screen_name을 반환하면 누구인지 알 수 있습니다.
+0

우수하다고 생각합니다. 어떻게 서명 할 수는 있지만 트위터에 요청을 보내지 않습니까? [jsOAuth] (https://github.com/bytespider/jsOAuth) 라이브러리를 사용하고 있습니다. setAccessToken() 메서드를 사용해야합니까? 또는이 기술을 명확하게 보여주는 기사를 더 잘 알 수 있습니까? – alpenglow

+0

jsOAuth를 사용한 적이 없기 때문에 그다지 도움이되지 않지만 [toSignatureBaseString] (https://github.com/bytespider/jsOAuth/blob/master/src/OAuth/Consumer.js#L417)처럼 보입니다. 서명 된 서명을 생성합니다. – abraham

+0

toSignatureBaseString은 서명 기본 문자열 만 생성합니다. 그러나 그 문자열을 가져 와서 비밀과 함께 OAuth.signatureMethod [ "HMAC-SHA1"] 방법으로 보내면 완료되어야합니다. 액세스 토큰을 건너 뛸 수 있습니다. –