Devise是否会使用身份验证数据?

时间:2013-03-02 23:19:38

标签: ruby-on-rails devise

我遇到了这种奇怪的情况。我为我的Rails后端API开发了一个基于JavaScript的前端。

我有一个登录表单,用于将用户名和密码发布到我的TokensController,返回存储在数据库中的authentication_token。此令牌存储在cookie中,并随每个表单一起提交。

现在我想实现一个注销功能。所以,我删除了cookie,因此在请求中没有提交任何令牌。 (或者错误的一个,在这种情况下标题是Authentication: Token token="undefined"

但是,Rails后端仍会返回200 OK所有数据,尽管定义了错误的令牌。这怎么可能?是否有用于验证请求的其他会话缓存?

这是我实现身份验证的超类:

module Api
  class SecureBaseController < ApplicationController

    prepend_before_filter :get_auth_token
    before_filter :authenticate_user!

    protected
    def get_auth_token
      puts token_value
      params[:auth_token] = token_value
    end

    def token_value
      if header && header =~ /^Token token="(.+)"$/
      $~[1]
      end
    end

    def header
      request.headers["Authorization"]
    end

  end
end

甚至puts在控制台中打印“未定义”,由Web应用程序提交,但是它是否正确验证了用户?

0 个答案:

没有答案
相关问题