Twitter の認証を解除する方法ってAPIからはできないみたい?

金曜日, 12月 6th, 2013

こんにちは、なかわけです。

今日はTwitter API の OAuth 認証の話。

よくOAuth 認証の方法は紹介されているけど、認証したWebアプリを解除する方法が語られていないので、自分なりに調べてみました。

結論から言うと、Webアプリ側(Webサービス側)から認証を解除する方法はないみたいです。

例えばWebサービス側のページで「認証を解除」という処理はWebサービス側のDBからユーザのOAuth Tokenを削除するだけの処理なので、Twitter のapps ページにはWebアプリが登録されたままです。

逆に、Twitter のappsページから 「Revoke access(許可を取り消す)」をクリックするとTwitter 側から認証は解除されるけど、Webサービス側のDBにはユーザのOAuth Token のレコードは残ったままです(当たり前だけど)。

この状態でAPIを使用しようとすると以下の様なエラーが戻ってきます。

エラーのvar_dump出力

[errors] => Array(
[0] => stdClass Object(
[message] => Invalid or expired token
[code] => 89
)
)

一応、Webサービス側のDBのToken を削除した状態でも、Twitter のApps ページから Revoke した状態でも、認証接続は切れている状態なのでWebアプリからはユーザのアカウントにアクセスできないようにはなります。

あんまりいい方法がないようですが、ユーザが任意でTwitter の Apps ページから Revoke した場合は、WebサービスのページでToken の有効性を確認して無効だったら、DBに残っている古いToken を削除して新たに認証を促す表示をした方がいいようですね。

Comments are closed.