有没有办法阻止用户访问/auth/:provider
,例如,他们没有登录?我尝试使用before_request_phase
回调和Rack::Response
将其重定向到登录页面,但它没有用。
我的应用程序没有使用omniauth进行用户身份验证。相反,它用于将第三方帐户连接到用户个人资料。
谢谢!
答案 0 :(得分:1)
OmniAuth.config.before_request_phase = lambda do |env|
user = env['warden'].authenticate!
end
答案 1 :(得分:0)
好的,我找到的解决方案是创建一个新的OmniAuth策略,该策略继承自我想要使用的策略并覆盖request_phase
方法。在初始化程序中仅使用OmniAuth配置无法获得相同的行为。
def request_phase
if env['rack.session']['warden.user.user.key'].present?
super
else
redirect '/'
end
end