2016-04-20 34 views
1

に何を意味するが、それは文字通りの意味で意味を理解するのは難しいです。例外とnull_sessionが、私はトークンベースのAPIを実装しようとGoogle</p> <p>ことで、このスニペットを見てるprotect_from_forgery

def handle_unverified_request 
    request = @controller.request 
    request.session = NullSessionHash.new(request.env) 
    request.env['action_dispatch.request.flash_hash'] = nil 
    request.env['rack.session.options'] = { skip: true } 
    request.env['action_dispatch.cookies'] = NullCookieJar.build(request) 
end 

手段:

任意の方向またはこれに関する基本的な知識、おかげであなたはそれのソースコードをチェックするとnull_sessionについて

class ApplicationController < ActionController::Base 

    protect_from_forgery with: :exception, if: Proc.new { |c| c.request.format != 'application/json' } 
    protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format == 'application/json' } 
end 

答えて

3

のRailsのドキュメントは、ここにhttp://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ProtectionMethods/NullSession.html#method-i-handle_unverified_requestです~~はhandle_unverified_request方法ですリクエストがverify_authenticity_tokenを通過しなければ、railsはクッキーデータによってセッションをフェッチしませんが、このリクエストのために新しいセッションを作成します。そのセッションはNullSessionHashのインスタンスなので、 "null_session"です。

関連する問題