我正在编写一个 iPhone 应用程序。我的(现有)Web 应用程序使用 Ruby on Rails (2.3.2) 来提供数据。Ruby on Rails 后端使用 restful-authentication gem 来验证用户。
为了从服务器获取用户数据到 iPhone 应用程序,我使用 HTTPRiot 框架并使用 HTTPBasicAuthentication 对用户进行身份验证。
现在一切正常 - 用户可以从 iPhone 应用程序获取和发布一些数据。但是当我想从服务中注销用户时,这似乎是不可能的。从不同的主题中,我了解到注销只是没有在 HTTPBasicAuthentication 中实现,我完全可以接受。我试图找到一种解决方法,例如在 Settings.app 中实现一个开关,以在用户返回应用程序时强制我的应用程序显示登录屏幕。
问题是:当应用程序进入后台时,iOS4 保持连接类型“打开”。要从 HTTPBasicAuthenticated 连接注销,需要断开此连接。使用这种方法,我的用户需要退出应用程序,打开 Settings.app 中的开关,从多任务处理中删除我的应用程序并重新启动我的应用程序。这太脏了。
我的问题是:是否有一种更简洁的方法可以在不完全离开应用程序的情况下注销/更改用户?
一些参考资料:HTTPRiot,Logout and basic auth,Logout and basic auth 2