2012-07-03 69 views
0

我在自定義OmniAuth :: Strategies模塊中的build_access_token方法中遇到了某種情況下的情況,我需要將其重定向到另一個鏈接。但是我得到了NoMethodError for redirect_to(因爲策略在Rack上下文中)。如何在omniauth策略中使用redirect_to?

redirect_to new_path 

我也試過

Rack::Response.new(["302 Moved"], 302, 'Location' => new_path).finish 

但是失敗了。似乎有一個Rack的深層調用堆棧。

如果我提出的戰略錯誤,它不能在ApplicationController中捕獲。

如何在OmniAuth :: Strategies中使用redirect_to?

回答

0

我找到了解決方案。從build_access_token,我創建並返回帶有自定義標誌的empty access_token。所以回調控制器可以處理標誌並重定向。

很難做在callback_phase (OmniAuth::Strategies)機架範圍內重定向,因爲有相當深的調用堆棧。