相关疑难解决方法(0)

理解Rails真实性令牌

我正在遇到有关Rails中的Authenticity Token的一些问题,因为我现在已经多次了.

但我真的不想只是解决这个问题而继续下去.我真的很想了解真实性令牌.那么,我的问题是,您是否有关于此主题的完整信息来源,或者您是否会花时间在此详细解释?

ruby ruby-on-rails authenticity-token

959
推荐指数
10
解决办法
18万
查看次数

rails - 对于json设计请求,"警告:无法验证CSRF令牌真实性"

如何检索CSRF令牌以传递JSON请求?

我知道出于安全原因,Rails正在检查所有请求类型(包括JSON/XML)上的CSRF令牌.

我可以放入我的控制器skip_before_filter :verify_authenticity_token,但我会失去CRSF保护(不建议:-)).

这个类似的(仍未被接受的)答案暗示

检索令牌 <%= form_authenticity_token %>

问题是如何?我是否需要先对我的任何页面进行调用以检索令牌,然后使用Devise进行真正的身份验证?或者它是一个一次性的信息,我可以从我的服务器获得然后一致地使用(直到我在服务器本身手动更改它)?

csrf devise ruby-on-rails-3 ruby-on-rails-3.1

81
推荐指数
3
解决办法
8万
查看次数

rails - json/xml请求的InvalidAuthenticityToken

出于某种原因,当使用json或xml向我的应用程序发出请求时,我得到一个InvalidAuthenticityToken.我的理解是rails应该只为html或js请求提供真实性令牌,因此我不应该遇到这个错误.到目前为止,我发现的唯一解决方案是禁用protect_from_forgery来执行我想通过API访问的任何操作,但由于显而易见的原因,这并不理想.思考?

    def create
    respond_to do |format|
        format.html
        format.json{
            render :json => Object.create(:user => @current_user, :foo => params[:foo], :bar => params[:bar])
        }
        format.xml{
            render :xml => Object.create(:user => @current_user, :foo => params[:foo], :bar => params[:bar])
        }
    end
end
Run Code Online (Sandbox Code Playgroud)

每当我将请求传递给操作时,这就是我在日志中获得的内容:

 Processing FooController#create to json (for 127.0.0.1 at 2009-08-07 11:52:33) [POST]
 Parameters: {"foo"=>"1", "api_key"=>"44a895ca30e95a3206f961fcd56011d364dff78e", "bar"=>"202"}

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
  thin (1.2.2) lib/thin/connection.rb:76:in `pre_process'
  thin (1.2.2) lib/thin/connection.rb:74:in `catch'
  thin (1.2.2) lib/thin/connection.rb:74:in `pre_process'
  thin (1.2.2) lib/thin/connection.rb:57:in `process'
  thin (1.2.2) lib/thin/connection.rb:42:in `receive_data'
  eventmachine (0.12.8) lib/eventmachine.rb:242:in `run_machine'
  eventmachine (0.12.8) …
Run Code Online (Sandbox Code Playgroud)

json ruby-on-rails restful-authentication

21
推荐指数
3
解决办法
1万
查看次数

通过原生iOS应用程序使用Devise创建用户帐户

我有一个使用Devise进行身份验证的本机Rails应用程序(使用token_authenticatable模块).使用现有帐户,一旦获得令牌,我就可以使用JSON在我的原生iOS应用程序中成功执行API调用.

我想添加通过iOS应用程序创建新帐户的功能,而无需使用浏览器.Devise只允许通过HTML创建帐户吗?

我看过这篇文章 Rails/Devise - 通过json请求创建新用户

并通过CURL尝试了各种各样的事情,包括:

$ curl -H "Content-Type: application/json" -d '{"email":"who@me.com","password":"mypass"}' -vX POST http://localhost:5000/users.json
...
* Connected to localhost (127.0.0.1) port 5000 (#0)
> POST /users.json HTTP/1.1
> User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
> Host: localhost:5000
> Accept: */*
> Content-Type: application/json
> Content-Length: 44
> 
* upload completely sent off: 44 out of 44 bytes
< HTTP/1.1 406 Not Acceptable 
< Content-Type: application/json; charset=utf-8
< X-Ua-Compatible: IE=Edge
< Cache-Control: …
Run Code Online (Sandbox Code Playgroud)

json ruby-on-rails devise ios

1
推荐指数
1
解决办法
1801
查看次数