1

ここでこの奇妙な状況に遭遇しました。Rails バックエンド API 用の JavaScript ベースのフロントエンドを開発しました。

ユーザー名とパスワードを投稿するログインフォームがあり、データベースに保存されてTokensControllerいるものを返します。authentication_tokenこのトークンは Cookie に保存され、すべてのフォームで送信されます。

今、ログアウト機能を実装したいと思いました。そのため、Cookie を削除して、リクエストでトークンが送信されないようにします。(または間違ったもの。この場合、ヘッダーはAuthentication: Token token="undefined")

200 OKそれでも、間違ったトークンが定義されていても、Rails バックエンドはすべてのデータを返します。これはどのように可能ですか?リクエストの認証に使用される他のセッション キャッシュはありますか?

これは、認証を実装する私のスーパー クラスです。

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

putsWebアプリケーションによって送信されたように、コンソールに「未定義」と出力されても、ユーザーを正しく認証しますか?

4

0 に答える 0