web-dev-qa-db-ja.com

TwitterAPI-ログアウト

WebアプリでOAuthを使用しており、ユーザーはTwitterでログインできます。

「Twitterアカウントの切り替え」ボタンを追加したいのですが、実際にセッションをクリアしてから、authorize_urlを開きます。

WebアプリでセッションをクリアしてもTwitterからログアウトされないため、authorize_urlは現在のTwitter.comユーザーを自動的に認証します。つまり、ユーザーをTwitter.comに送信しない限り、ログアウトすることはできません。

APIで可能ですか?これを実装するための最良の方法は何ですか?

28
elado

Twitterとのセッションは、Twitterが所有するCookieによって定義されます。これはユーザーが制御できないものです。彼らに代わってTwitterからログアウトすることはできません。

誰かが「Twitterアカウントの切り替え」機能を使用できるようにする場合は、それらをOAuthハンドシェイクに再度渡す必要がありますが、代わりに/oauth/authorizeパスを使用してください/oauth/authenticateパスの。これにより、ユーザーは、既存のTwitterセッションを使用して再認証するだけでなく、ハンドシェイク中にTwitterでユーザー資格情報を切り替えることができます。

または、独自のアプリでユーザーの概念を個別に設定して、多数のTwitterアカウントが関連付けられた独自のユーザーモデルを作成することもできます。そうすれば、ユーザーがアカウントをより見苦しく切り替えることができるようになります。彼らは、Twitterアカウントごとにアプリを事前に承認する必要がありますが、その後は、Twitterアカウントごとにすべてのoauthキーが必要になります。

29
Ryan McGeary

Oauth/authenticateを使用して、 GET oauth/authenticate で指定されているようにforce_login=trueを追加できます。これにより、ユーザーにログインフォームが表示されます。

32
abraham

回答としてコメントしてすみません。 abrahamソリューションはうまく機能しますが、ユーザー名フィールドをクリアするには、GETリクエストにscreen_name=を追加する必要もあります。

1
kezoo