Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为我的应用程序创建安全的Rails REST Api?_Android_Ruby On Rails_Authentication_Rest - Fatal编程技术网

Android 如何为我的应用程序创建安全的Rails REST Api?

Android 如何为我的应用程序创建安全的Rails REST Api?,android,ruby-on-rails,authentication,rest,Android,Ruby On Rails,Authentication,Rest,因此,我正在为Android制作一个需要网络后端的应用程序。该网站正在RubyonRails中构建。它有面向客户端的一面(漂亮的HTML页面),但我也希望它能够通过JSON向我的Android应用程序提供信息。然而,我不希望全世界都能得到这个JSON,因为它包含一些可能危险的信息。我如何锁定JSON格式的页面,并且仍然可以从Android应用程序访问它们 作为记录,我使用Rails 3.1具有安全的密码来进行现场用户身份验证,并且我希望有一些对HTML请求开放但对JSON锁定的路由(例如,/us

因此,我正在为Android制作一个需要网络后端的应用程序。该网站正在RubyonRails中构建。它有面向客户端的一面(漂亮的HTML页面),但我也希望它能够通过JSON向我的Android应用程序提供信息。然而,我不希望全世界都能得到这个JSON,因为它包含一些可能危险的信息。我如何锁定JSON格式的页面,并且仍然可以从Android应用程序访问它们

作为记录,我使用Rails 3.1
具有安全的密码
来进行现场用户身份验证,并且我希望有一些对HTML请求开放但对JSON锁定的路由(例如,
/users
url应该可以作为HTML访问,但作为JSON应该只能通过某种安全方法从我的应用程序访问)

有没有办法做到这一点,或者API必须是一个单独的应用程序(这会给DB设置带来极大的不便,等等)

澄清:
基本上,我想做的是从我的Rails应用程序中创建一个基于令牌的安全JSON API,我不想使用Desive或其他会迫使我改变我存储用户/通行证信息的方式的东西。

根据您使用的Rails版本,部分工作已经通过respond\u to方法完成,它允许您为同一url提供JSON和HTML。 现在,为了锁定JSON访问,您可以定义一个检查应用程序访问的方法,并在提供JSON响应时调用它

def with_access_check()
  if allowed # Or any verification you want.
    yield
  else
    # Raise a 403 maybe?
  end
end

# Then in every method that needs a check:
respond_to :json { with_access_check { render :json => @stuff } }

最后,除非你在JSON和HTML视图上提供了非常不同的数据(如果你使用相同的URL,这是很奇怪的),那么考虑任何东西都不能阻止攻击者/恶意用户从HTML中提取非常相同的数据。