2017-07-07 52 views
0

SO ...Rails的動態控制器身份驗證(設計+餅乾或令牌+接頭)

我現在有2個導軌控制器:一個用於色器件認證,而另一個用於令牌認證。我試圖創建一個新的控制器,可用於在存在cookie時使用設計認證或在cookie不存在時使用標頭進行令牌認證。

我的直覺是讓我的新控制器有兩個變量,每種類型的身份驗證控制器之一,並使用before_actionbefore_filter來檢查cookie並將請求轉發到正確的控制器。

請注意,我的設計認證控制器有一個before_action :authenticate_user!和我的令牌認證控制器有一個before_action :authenticate_using_headers,但我只想調用1,具體取決於我的API被擊中的方式。

對我如何通過對現有控制器進行微小更改來優雅地實現這一目標有所瞭解。

回答

0

如果authenticate_using_headers回報nilfalse如果驗證失敗,您可以做到這一點你application_controller

def authenticate_token_or_user! 
    authenticate_using_headers || authenticate_user! 
end 

然後在控制器要同時啓用:

before_filter :authenticate_token_or_user!