Ruby on rails 如何通过Rails进行身份验证并通过API进行设计?

Ruby on rails 如何通过Rails进行身份验证并通过API进行设计?,ruby-on-rails,devise,Ruby On Rails,Devise,我使用gemdesigne进行用户注册和身份验证。当我使用web界面时,一切都很顺利。但我想通过api进行身份验证。所以,我提出了一个请求,但出现了一个错误 #request curl -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST http://localhost:3000/users/sign_in -d '{"user" : { "email" : "admin@mail.ru", "pas

我使用gemdesigne进行用户注册和身份验证。当我使用web界面时,一切都很顺利。但我想通过api进行身份验证。所以,我提出了一个请求,但出现了一个错误

#request
curl -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST http://localhost:3000/users/sign_in -d '{"user" : { "email" : "admin@mail.ru", "password" : "r465ee"}}'

#error
Started POST "/users/sign_in" for ::1 at 2017-01-11 17:43:57 +0300
Processing by Devise::SessionsController#create as JSON
  Parameters: {"user"=>{"email"=>"admin@mail.ru", "password"=>"[FILTERED]"}, "session"=>{"user"=>{"email"=>"admin@mail.ru", "password"=>"[FILTERED]"}}}
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 2ms (ActiveRecord: 0.0ms)



ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
然后我更改了应用程序\u controller.rb,但没有任何帮助

class ApplicationController < ActionController::Base
  protect_from_forgery with: :null_session, if: ->{request.format.json?}
end
class ApplicationController{request.format.json?},则使用::null_会话保护_免受_伪造
结束
试试看

试一试


DevisionTokenAuth::SessionsController处理#创建为JSON参数:{“用户”=>{“电子邮件”=>”admin@mail.ru“,”密码“=>”[过滤]”},“会话”=>{“用户”=>{“电子邮件”=>”admin@mail.ru“,”password“=>”[FILTERED]“}}}}无法验证CSRF令牌的真实性。不允许的参数:用户,会话,然后可能是完全不同的问题。尝试检查您的强参数,并在允许的情况下设置用户和会话参数。最后,我通过删除'user'(curl-H'内容类型:application/json'-H'Accept:application/json'-X POST-d'{“email”:admin@mail.ru“,”密码“:“r465eer465ee”}”)很高兴知道您的问题现在已经解决。但正如我在之前的最后一次评论中提到的,您可能会遇到另一个关于强参数(用户和会话)的问题。查看它。DevisionTokenAuth::SessionController处理#创建为JSON参数:{“用户”=>{“电子邮件”=>”admin@mail.ru“,”密码“=>”[过滤]”},“会话”=>{“用户”=>{“电子邮件”=>”admin@mail.ru“,”password“=>”[FILTERED]“}}}}无法验证CSRF令牌的真实性。不允许的参数:用户,会话,然后可能是完全不同的问题。尝试检查您的强参数,并在允许的情况下设置用户和会话参数。最后,我通过删除'user'(curl-H'内容类型:application/json'-H'Accept:application/json'-X POST-d'{“email”:admin@mail.ru“,”密码“:“r465eer465ee”}”)很高兴知道您的问题现在已经解决。但正如我在之前的最后一次评论中提到的,您可能会遇到另一个关于强参数(用户和会话)的问题。过来看。
protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format == 'application/json' }