Twitterの@logoutははまちちゃん(ぼくはまちちゃん!)なのではないかと思われる。なぜかというと、このアカウントで「こんにちはこんにちは!」と発言しており(以下のURLから確認できる)、名前が「Hamachiya2」となっているからである。
https://twitter.com/logout/status/85500046010884096
このアカウントで呟かれている内容の全貌が気になるかもしれないが、それを確認するために以下のURLにアクセスしても無駄である。
普通のPCから普通のWebブラウザを使って上のURLにアクセスしても、@logoutの発言内容は表示されず、代わりに「Twitterからログアウトしますか?」と表示される。これではダメだ。
@logoutの発言内容を確認するには、例えばTogetterを介せばいい。
どうしてこのアカウントのお話をしているのかというと、iPadのSafariの場合は上に示した挙動にならないからである。http://twitter.com/logout にアクセスすると、ログアウト確認ではなく、@logoutの発言内容が表示される。
これが問題になるのは、TwitterのOAuth認証に依存しており、頻繁にユーザを変更するWebサービスを開発した時である。
ご存知の通り、TwitterのOAuthを認証の代わりに使用するWebサービスにログインする場合、まずTwitterそのものにログインしなければならない。OAuthは「このWebサービスに、あなた名義でTwitterのAPIを叩く権利を与えますか?」と訊きにくるのが肝であるから、当然ながら「あなた」名義で予めログインし、OAuthに訊かれる前にTwitter(と自分のWebブラウザ)に「あなた」とは誰かを教えておく必要がある。
残念なことに、この認証方法を採用すると、ユーザ切り替えのたびにユーザは「Webサービスからのログアウト」と「Twitterからのログアウト」の二度手間を強いられることになる。Webサービスからのログアウトだけでは不十分で、次に別のユーザでログインしようとした際に「どのユーザでログインしますか?」と訊いてこなくなってしまう(ついさっきログアウトしたユーザで再度ログインしてしまう)。何故ならTwitterは、既に誰かの名義でログインしている状態だと、「あなたが誰か、私は既に知っていますよ」と言わんばかりにユーザ認証をスキップするからである。
ユーザのストレスを減らす方法は、せいぜいWebサービスからログアウトした直後の画面に「このページからTwitterログアウトできます」というリンクを張っておくくらいのものである。ここでいよいよ、先ほどのURLが登場する。 http://twitter.com/logout へのリンクを張っておけば、ユーザは「ログアウトしますか?Yes/No」に答えるだけで済むはずだ。
この方法はうまくいった…iPadのSafariを除いては。iPadで http://twitter.com/logout を押すと、@logout(はまちちゃんのアカウント)のTweet一覧に飛ばされる。ログアウトはできない。
どうしてこのような仕様になっているのか、私にはよくわからない。また、どこにリンクを張れば、どのようなデバイスでもお手軽にTwitterからログアウトできるのか、わからない。ご存知の方がいらしたら、是非とも教えていただきたい。