使用简单令牌认证进行设计

时间:2014-02-25 11:53:49

标签: ruby-on-rails ruby json devise simple-authentication

我正在使用以下gem并设计,因为devise删除了对令牌身份验证的支持。 https://github.com/gonzalo-bulnes/simple_token_authentication

我在这里缺少的是,我有所有配置设置,但是当我使用Google上的RestConsole Tester点击http://localhost:3000/user/sign_in.json时。

我收到以下错误:

ActionController :: /users/sign_in.json中的InvalidAuthenticityToken

  

的ActionController :: InvalidAuthenticityToken     actionpack(4.0.2)

     

lib / action_controller / metal / request_forgery_protection.rb,第163行

        def initialize(controller)
          @controller = controller
         end

        def handle_unverified_request
          raise ActionController::InvalidAuthenticityToken
        end
      end
    end

    protected

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您的POST未通过CSRF令牌检查。您可以通过暂时从您的protect_from_forgery删除application_controller.rb来验证这种情况。

This article提供了一种解决方案,用于覆盖特定控制器上的检查,这对于登录请求应该是安全的。

答案 1 :(得分:0)

你可以试试这个

身份验证:

curl -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -X POST http://localhost:3000/users/sign_in \ -d '{"user" : { "email" : "test@example.com", "password" : "password"}}' \ -c cookie

显示:

curl -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -X GET http://localhost:3000/pages/1.xml \ -b cookie

这适合我。