【问题标题】:Dynamic callback url with omniauth strategies具有omniauth策略的动态回调url
【发布时间】:2014-02-03 22:49:41
【问题描述】:

在我的项目中,我使用omniauth-facebook(g+) gems 为用户提供一键创建帐户的能力。然而,在用户登录 facebook(g+) 后,他被重定向到回调 url。就我而言,它看起来像 www.example.com/users/omniauth_callbacks/facebook

facebook 操作看起来像

def facebook
@user = User.find_by_email(ENV['omniauth'].email)
if @user
sign_in @user
redirect_to root_path
else
create_user_account(ENV['omniauth'])
end

但不是redirect_to root_path,我想将用户返回到他调用登录过程的页面。我尝试使用redirect_to :back ,但这会抛出空HTTP_REFERRER 的错误。有没有其他方法可以在用户开始登录过程之前跟踪控制器和操作,然后存储它并在回调后使用?

【问题讨论】:

    标签: ruby-on-rails ruby facebook omniauth


    【解决方案1】:

    Omniauth 本身不提供任何工具来执行此操作。但是,您可以自己实现一些简单的童话。例如,您可以将当前 url 存储在 cookie/session 中,并在您的 facebook 方法中重定向到它。这是一个类似的答案question

    【讨论】:

      【解决方案2】:

      回答自己的问题。这是一段哈希,其中包含此信息。它存储在 request.env['omniauth.origin']

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-21
        • 1970-01-01
        • 2012-06-23
        • 2019-11-23
        • 1970-01-01
        • 2017-09-18
        • 2015-05-06
        • 1970-01-01
        相关资源
        最近更新 更多