2012-04-02

iPadSafariTwitterからログアウト→はまちちゃんTweet一覧に

Twitterの@logoutははまちちゃん(ぼくはまちちゃん!)なのではないかと思われる。なぜかというと、このアカウントで「こんにちはこんにちは!」と発言しており(以下のURLから確認できる)、名前が「Hamachiya2」となっているかである

https://twitter.com/logout/status/85500046010884096

このアカウントで呟かれている内容の全貌が気になるかもしれないが、それを確認するために以下のURLアクセスしても無駄である

http://twitter.com/logout

普通PCから普通Webブラウザを使って上のURLアクセスしても、@logoutの発言内容は表示されず、代わりに「Twitterからログアウトしますか?」と表示される。これではダメだ。

@logoutの発言内容を確認するには、例えばTogetterを介せばいい。

http://togetter.com/id/logout

どうしてこのアカウントお話をしているのかというと、iPadSafari場合は上に示した挙動にならないからであるhttp://twitter.com/logoutアクセスすると、ログアウト確認ではなく、@logoutの発言内容が表示される

これが問題になるのは、TwitterOAuth認証依存しており、頻繁にユーザを変更するWebサービスを開発した時である

ご存知の通り、TwitterOAuth認証の代わりに使用するWebサービスログインする場合、まずTwitterのものログインしなければならない。OAuthは「このWebサービスに、あなた名義でTwitterAPIを叩く権利を与えますか?」と訊きにくるのが肝であるから、当然ながら「あなた」名義で予めログインし、OAuthに訊かれる前にTwitter(と自分Webブラウザ)に「あなた」とは誰かを教えておく必要がある。

残念なことに、この認証方法採用すると、ユーザ切り替えのたびにユーザは「Webサービスからログアウト」と「Twitterからログアウト」の二度手間を強いられることになる。Webサービスからログアウトだけでは不十分で、次に別のユーザログインしようとした際に「どのユーザログインしますか?」と訊いてこなくなってしまう(ついさっきログアウトしたユーザで再度ログインしてしまう)。何故ならTwitterは、既に誰かの名義でログインしている状態だと、「あなたが誰か、私は既に知っていますよ」と言わんばかりにユーザ認証スキップするからである

ユーザストレスを減らす方法は、せいぜいWebサービスからログアウトした直後の画面に「このページからTwitterログアウトできます」というリンクを張っておくくらいのものである。ここでいよいよ、先ほどのURLが登場する。 http://twitter.com/logout へのリンクを張っておけば、ユーザは「ログアウトしますか?Yes/No」に答えるだけで済むはずだ。

この方法はうまくいった…iPadSafariを除いてはiPadhttp://twitter.com/logout を押すと、@logout(はまちちゃんアカウント)のTweet一覧に飛ばされる。ログアウトはできない。

どうしてこのような仕様になっているのか、私にはよくわからない。また、どこにリンクを張れば、どのようなデバイスでもお手軽にTwitterからログアウトできるのか、わからない。ご存知の方がいらしたら、是非とも教えていただきたい。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん