2

我试图弄清楚如何使用我的 Rails 4 应用程序配置 LinkedIn 的身份验证,该应用程序使用 devise 和omniauth。我的 gem 文件中有:gem 'omniauth-linkedin-oauth2'。

我已经在 LinkedIn 上注册了我的应用程序,并在我的应用程序中插入了密钥和密钥。LinkedIn 开发人员论坛已确认该过程正在运行,但表示注册的重定向路径与我在回调中的内容不匹配。

我有一个 omniauth_callbacks 控制器,其中包含以下代码:

def linkedin
    @user = User.find_for_linkedin_oauth(request.env["omniauth.auth"])
      if @user.persisted?
        redirect_to root_path, :event => :authentication
        # sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
        #  set_flash_message(:notice, :success, :kind => "LinkedIn") if is_navigational_format?
        else
          session["devise.linkedin_data"] = request.env["omniauth.auth"]
          redirect_to root_path
        end
      end

我正在重定向到我的 root_path。

我的 root_path 在我的 routes.rb 文件中定义为:home#home。

在我的视图文件夹中,我有一个名为 home 的文件夹,其中包含一个名为 home.html.erb 的文件。

我已在 LinkedIn 注册重定向 URL 为:www.xxxxxxx.com/home 并且还尝试了以下方法:www.xxxxxxx.com、www.xxxxxxx.com/views/home/home、www.xxxxxxx.com/home/家。这些路径都不起作用。

请有人可以帮助我了解如何定义一个能够被 LinkedIn 识别为匹配我的 root_path 的重定向路径。

非常感谢您提前。

4

1 回答 1

1

运行rake routes并查看以 . 结尾的 URI 模式callback

您很可能会找到如下模式:

/users/auth/:action/callback(.:format)

这意味着在开发中,您的回调 url 将是:

http://localhost:3000/users/auth/linkedin/callback

在生产中,您的回调 url 将是:

www.xxxxxxx.com/users/auth/linkedin/callback
于 2014-06-24T12:07:07.563 回答