Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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
Ruby on rails 设计定制策略:仍然设置会话cookie_Ruby On Rails_Ruby_Session_Cookies_Devise - Fatal编程技术网

Ruby on rails 设计定制策略:仍然设置会话cookie

Ruby on rails 设计定制策略:仍然设置会话cookie,ruby-on-rails,ruby,session,cookies,devise,Ruby On Rails,Ruby,Session,Cookies,Devise,我正在使用Desive对RubyonRails应用程序的用户进行身份验证。到目前为止,我一直在使用标准的基于Cookie的会话对用户进行身份验证,但现在我需要允许基于令牌的身份验证,并且我通过一个 在本例中,我的自定义策略代码为: module Devise module Strategies class CustomAuthenticatable < Base def valid? params.has_key? :email end

我正在使用Desive对RubyonRails应用程序的用户进行身份验证。到目前为止,我一直在使用标准的基于Cookie的会话对用户进行身份验证,但现在我需要允许基于令牌的身份验证,并且我通过一个

在本例中,我的自定义策略代码为:

module Devise
  module Strategies
    class CustomAuthenticatable < Base
      def valid?
        params.has_key? :email
      end 

      def authenticate!
        success!(User.find_by(email: params[:email]))
        #fail
      end 
    end 
  end 
end
模块设计
模块策略
类CustomAuthenticatable
因此,当我
GET/api/my_controller/url?电子邮件时,这与第一个请求的预期效果一样=user@example.com
用户已通过身份验证,我得到了预期的响应

但是等待:当我发出第二个请求时:
GET/api/my_controller/url
,用户仍然经过身份验证

进一步检查后,我发现正在发送一个
Set Cookie
,其中包含一个designe会话

所以我的问题是:
如何在使用自定义策略时禁用
设置Cookie

您可以阻止创建会话,如此处所述

对于一些其他的选择,请考虑。

resource = warden.authenticate!(:scope => resource_name, :store => !(request.format.xml? || request.format.json?))