iOS,rails,devise:如何持久保存用户登录(session vs authentication_token)

时间:2013-02-17 18:37:08

标签: ios ruby-on-rails devise

我正在尝试使用rails后端构建一个iOS应用程序。我选择了devise作为用户身份验证和会话管理系统。

目前我已经修改了原始的Devise RegistrationsController和SessionsController,以便它们返回JSON响应。 SessionsController中的示例create方法如下:

def create
    build_resource
if resource.save
  if resource.active_for_authentication?
    sign_up(resource_name, resource)
    respond_to do |format|
      format.json { render :json => ["success", resource, User.serialize_into_cookie(resource)]}
    end
  else
    expire_session_data_after_sign_in!
    respond_to do |format|
      format.json { render :json => ["inactive", resource]}
    end
  end
else
  clean_up_passwords resource
  respond_to do |format|
    format.json { render :json => ["error", resource]}
  end
end
end

我想知道通过iOS应用程序持续登录的最佳方法是什么。

大多数设计教程仅适用于Web应用程序,我不确定如何将这些应用到我的iOS应用程序中。

我使用的框架是'AFNetworking',我用于网络的类是'AFHTTPClient'和'AFJSONRequestOperation'。但我不知道如何在客户端检索和存储会话,以便我以后可以使用它。

  1. 也许我应该使用不同的网络框架来使用正确的标头和东西来检索会话和cookie?类似于ASIHTTPClient?

  2. 或者我应该在设计中使用token_authenticatable功能来持久登录?

1 个答案:

答案 0 :(得分:0)

如果您的项目只是一个json后端,通常最好使用token_authenticatable。 JSON操作简单,干净,设计允许您快速设置并为您处理。