私はiPhoneアプリケーションをプログラミングしています。私の (既存の) Web アプリケーションは、Ruby on Rails (2.3.2) を使用してデータを提供します。Ruby on Rails バックエンドは restful-authentication gem を使用してユーザーを認証します。
サーバーから iPhone アプリにユーザー データを取得するために、HTTPRiot フレームワークを使用し、HTTPBasicAuthentication でユーザーを認証します。
これで、すべて正常に動作します。ユーザーは、iPhone アプリとの間でデータを取得および投稿できます。しかし、サービスからユーザーをログアウトしたい場合、それは不可能に思えます。さまざまなトピックから、ログアウトが HTTPBasicAuthentication に実装されていないことを理解しました。それで完全にOKです。ユーザーがアプリに戻ったときにアプリにログイン画面を表示させるために、Settings.app にスイッチを実装するなどの回避策を見つけようとしました。
問題は次のとおりです。iOS4 は、アプリがバックグラウンドに入るときに接続を「開いた」状態に保ちます。HTTPBasicAuthenticated 接続からログアウトするには、この接続を切断する必要があります。このアプローチを使用すると、ユーザーはアプリを終了し、Settings.app でスイッチをオンにし、アプリをマルチタスクから削除して、アプリを再起動する必要があります。これは汚すぎる。
私の質問は、アプリケーションを完全に終了せずにユーザーをログアウト/変更するためのよりクリーンな方法はありますか?
参考文献: HTTPRiot、ログアウトと基本認証、ログアウトと基本認証 2