【问题标题】:iOS app - Rails 4 and Devise as backendiOS 应用程序 - Rails 4 和 Devise 作为后端
【发布时间】:2014-02-25 08:57:11
【问题描述】:

我想知道如何使用 Rails 作为我的 iOS 应用程序的后端。

我只需要一个具有电子邮件和密码的用户来使用设备进行身份验证。 我已经有一个使用 devise 和 rails 4 创建的用户。

我确实找到了这个帖子 http://jessewolgamott.com/blog/2012/01/19/the-one-with-a-json-api-login-using-devise/ 解释了我需要什么,但仍然缺少一些东西。

  1. 当我尝试通过我的 iOS 应用程序进行 POST 时,我收到消息“无法验证 CSRF 令牌真实性”。如何在不跳过过滤器 verify_authenticity_token 的情况下解决这个问题?

  2. iOS 的请求代码是什么样的?现在我正在做一个POSThttp://localhost:3000/api/users/sign_in.json 并设置HTTPBody = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:0 error:&jsonError],但是rails 服务器只接收一个字符串作为整个json 字典的键,而不是一个实际的json 字典。

    params = {"{\"user\":{\"email\":\"qwe\",\"password\":\"123\"}}"=>nil, "action"=>"create", "controller"=>"api/sessions", "format"=>"json"}

  3. 我将如何执行 https 请求而不是 http,这样我可以隐藏密码和电子邮件字段以防其他人试图监视我的互联网流量?

非常感谢。

【问题讨论】:

  • 关于 Rails 部分,我相信,您正在寻找已在此处发布的答案:stackoverflow.com/questions/5669322/…
  • 不是直接回答你的问题,但以防万一它有用,也许你可以看看helios.io——你可以很容易地将它集成到 Rails 应用程序中,并获得你的大部分后端需要“免费”,包括与 iOS 端的 CoreData 同步。

标签: ios7 devise ruby-on-rails-4


【解决方案1】:

要使用 Rails Applications Mobile 和 Android 和 IOS,必须使用 JSONP:示例:

JS 示例:

$.ajax({
  url: '/api_mobile',
  jsonp: "callback",
  dataType: "jsonp",
  cache: true,
  data: {method: 'login', other_data ...},
  success: function(res) {
    // response object
    console.log(res)
  },
  error: function(request, status, error) {
    alert("Error server: " + request.status);
  }
});

铁路 4:

protect_from_forgery with: :exception, only: :api_mobile

# route /api_mobile
def api_mobile  
   json = {error: 'Not found Method'}
   case params[:method]
      when: 'login'
         if User.login(params[:username], params[:password])
            json = {notice: 'Login success'}
         else
            json = {error: 'Error Username or Password'}
         end
   end
   render json: json, :callback => params[:callback]
end

所有功能都必须个性化和参数化

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2014-01-30
    • 1970-01-01
    • 2020-09-18
    相关资源
    最近更新 更多