我有一个场景,在我定制的OmniAuth :: Strategies模块中的build_access_token方法的某些条件下,我需要重定向到浏览器到另一个链接。但是我为redirect_to获得了NoMethodError(因为策略在Rack上下文中)。
redirect_to new_path
我也试过
Rack::Response.new(["302 Moved"], 302, 'Location' => new_path).finish
但失败了。似乎Rack有一个深度调用堆栈。
如果我在策略中引发错误,则无法在ApplicationController中捕获它。
如何在OmniAuth :: Strategies中使用redirect_to?
答案 0 :(得分:0)
我找到了解决方案的方法。从build_access_token
开始,我创建并返回带有自定义标记的empty access_token
。所以回调控制器可以处理标志并进行重定向。
很难在Rack上下文中的callback_phase (OmniAuth::Strategies)
重定向,因为有很深的调用堆栈。