WebアプリでOAuthを使用しており、ユーザーはTwitterでログインできます。
「Twitterアカウントの切り替え」ボタンを追加したいのですが、実際にセッションをクリアしてから、authorize_urlを開きます。
WebアプリでセッションをクリアしてもTwitterからログアウトされないため、authorize_urlは現在のTwitter.comユーザーを自動的に認証します。つまり、ユーザーをTwitter.comに送信しない限り、ログアウトすることはできません。
APIで可能ですか?これを実装するための最良の方法は何ですか?
Twitterとのセッションは、Twitterが所有するCookieによって定義されます。これはユーザーが制御できないものです。彼らに代わってTwitterからログアウトすることはできません。
誰かが「Twitterアカウントの切り替え」機能を使用できるようにする場合は、それらをOAuthハンドシェイクに再度渡す必要がありますが、代わりに/oauth/authorize
パスを使用してください/oauth/authenticate
パスの。これにより、ユーザーは、既存のTwitterセッションを使用して再認証するだけでなく、ハンドシェイク中にTwitterでユーザー資格情報を切り替えることができます。
または、独自のアプリでユーザーの概念を個別に設定して、多数のTwitterアカウントが関連付けられた独自のユーザーモデルを作成することもできます。そうすれば、ユーザーがアカウントをより見苦しく切り替えることができるようになります。彼らは、Twitterアカウントごとにアプリを事前に承認する必要がありますが、その後は、Twitterアカウントごとにすべてのoauthキーが必要になります。
Oauth/authenticateを使用して、 GET oauth/authenticate で指定されているようにforce_login=true
を追加できます。これにより、ユーザーにログインフォームが表示されます。
回答としてコメントしてすみません。 abrahamソリューションはうまく機能しますが、ユーザー名フィールドをクリアするには、GETリクエストにscreen_name=
を追加する必要もあります。