RestKit会话管理

时间:2012-02-20 06:49:25

标签: ios restkit

使用RestKit进行“持久”会话的正确方法是什么?

最简单的方法是在服务器端进行长会话,但是 不确定它对浏览器版本是否安全。我宁愿隐含地重新 如果会话过期,则登录,但在这种情况下,我必须处理会话 到期,发送新的登录请求,接收响应和发送 再一次目标请求。来源变得更加复杂。

RestKit中是否有任何允许管理的功能 自动?也许只是为iPhone应用程序保持持久会话 使用CakePHP功能的网页版短吗?

谢谢, 维克多

2 个答案:

答案 0 :(得分:6)

您可能希望会话以便身份验证/授权有效吗?

我目前正在开发iOS上的RestKit项目。根据我的需要,我所做的与RestKit创作者的讨论板示例非常接近。

在iOS中,您可以将uniqueSecurityToken写入NSUserDefaults。它可以是iOS应用上的用户模型的属性模型。在Rails上(我做了一个假设),如果你有像Authlogic / Sorcery这样的auth gem,那么很容易覆盖current_user方法或者根据令牌分配一个方法。

例如,

def user_access_token 
    request.headers["HTTP_X_USER_ACCESS_TOKEN"] || request.headers["HTTP_USER_ACCESS_TOKEN"]
end

def check_for_mobile_token
    if token = user_access_token
      current_user = User.find_by_remember_me_token(token) || current_user
    end
  end

您可以调用before filter以确保始终检查身份验证。在IOS方面,告诉RestKit在头文件中将uniqueSecurityToken发送为HTTP_USER_ACCESS_TOKEN。请注意,这可能不是最安全的方法,您至少应该使用HTTPS以便传输加密。

这是RestKit讨论板项目(对RestKit / IOS非常有用) https://github.com/RestKit/RKDiscussionBoard

这是一个Rails演示文稿,概述了Rails / iOS集成 http://www.slideshare.net/maximeguilbot/rails-as-ios-application-backend

如果您正在使用除Rails之外的其他REST框架,那么您也可以引用JSON技术。

答案 1 :(得分:1)

您可能想要做的是开发一个“RESTful”API,您的应用将使用该API与您的服务器进行通信。基本上,REST API允许客户端发送在服务器上构建状态所需的所有信息。您不应该为iOS应用程序处理服务器上的会话。

基本的想法是,当您登录时,您可以从服务器获取某种身份验证令牌。然后您可以将每个请求发送给它,作为识别登录用户到服务器的方式。