2009-12-25 10 views
28

내 웹 앱에서 OAuth를 사용 중이며 사용자는 트위터로 로그인 할 수 있습니다.Twitter API - 로그 아웃

"스위치 트위터 계정"단추를 추가하여 실제로 세션을 지우고 authorize_url을 엽니 다.

내 웹 앱에서 세션을 삭제해도 트위터에서 로그 아웃하지 않으므로 authorize_url이 자동으로 현재 twitter.com 사용자를 인증합니다. 즉, 사용자를 twitter.com에 보내지 않으면 로그 아웃을 할 수 없습니다.

API로 가능합니까? 이것을 구현하는 가장 좋은 방법은 무엇입니까?

답변

29

Twitter와의 세션은 Twitter가 소유 한 쿠키로 제어됩니다. 제어 할 수없는 것입니다. 트위터에서 로그 아웃 할 수 없습니다.

누군가가 "스위치 트위터 계정"기능을 사용할 수있게하려면 /oauth/authenticate 경로 대신 /oauth/authorize 경로를 사용하여 OAuth 핸드 셰이크에 다시 전달해야합니다. 이렇게하면 사용자는 기존 Twitter 세션을 사용하여 다시 인증하는 대신 핸드 셰이크 중에 Twitter에서 자신의 사용자 자격 증명을 전환 할 수 있습니다.

또는 자신의 앱에 별도의 사용자 개념을 사용하여 관련 사용자가 많은 트위터 계정이있는 사용자 모델을 가질 수 있습니다. 그렇게하면 사용자가 계정을 더 단순하게 전환 할 수 있습니다. 그들은 자신의 트위터 계정마다 앱을 먼저 인증해야하지만, 그 후에 각 트위터 계정에 대한 모든 oauth 키를 갖게됩니다.

+0

고마워요! 차이점을 실제로 알지 못하고/authenticate /를 사용했지만 권한 부여를 통해 사용자가 트위터에 자신의 계정을 표시합니다. – elado

+0

누가 bengottlieb/Twitter-OAuth-iPhone 용 코드를 게시 할 수 있습니까? 나는 로그 아웃 할 수 없다. – Voloda2

+2

Twitter를 로그 아웃하고 다른 계정으로 로그인하는 방법. 코드 좀 넣어 주시겠습니까? – Emerald214

32

oauth/authenticate를 사용하고 force_login=trueGET oauth/authenticate에 지정된대로 추가 할 수 있습니다. 이렇게하면 사용자에게 로그인 양식이 표시됩니다.

+0

잘 작동했지만 양식에 여전히 이전에 로그인 한 사용자의 사용자 이름이 포함되어 있습니다. ( –

+0

@MubasharAhmad 그럼 폼에 자동으로 채워지는 브라우저가 아닌 것입니까? – abraham

+0

/session/destroy url using log 하지만 그것은 더 이상 사용할 수없는 것, 그리고 그것은 빈 로그인 양식을 보여 주었다. 어쨌든 나는 그것을 웹 컨트롤이나 트위터 자체가 확실하지 않습니다.하지만 당신이 바로 내가 작동하도록 웹 브라우저 제어 기능을 확인합니다. –

0

답변으로 답변드립니다. abraham 솔루션은 훌륭하게 작동하지만 사용자 이름 입력란을 지우려면 GET 요청에 screen_name=을 추가해야합니다.