omniauth:(linkedin)身份验证失败!无效的_凭证

问题描述 投票:0回答:3
Request phase initiated.
Started GET "/users/auth/linkedin/callback?code=...&state=..." for 127.0.0.1 at 2022-09-14 20:50:20 +0200
D, [2022-09-14T20:50:20.537126 #37240] DEBUG -- omniauth: (linkedin) Callback phase initiated.
E, [2022-09-14T20:50:21.021252 #37240] ERROR -- omniauth: (linkedin) Authentication failure! invalid_credentials: OAuth2::Error, invalid_request: A required parameter "client_secret" is missing
{"error":"invalid_request","error_description":"A required parameter \"client_secret\" is missing"}
Processing by Users::OmniauthCallbacksController#failure as HTML
  • 红宝石版本3.2.0
  • rails 版本 7.0.4
gem 'omniauth'
gem 'omniauth-linkedin-oauth2'
ruby ruby-on-rails-3 csrf omniauth omniauth-linkedin
3个回答
1
投票

我可以确认您的修复确实有效。谢谢你!我将其添加到我的应用程序的 config/initializers.rb 中,如下所示

 module OmniAuth
  module Strategies
    class LinkedIn < OmniAuth::Strategies::OAuth2
      def token_params
        super.tap do |params|
          params.client_secret = options.client_secret
        end
      end
    end
  end
end

Add this in your code

lib/策略/linkedin.rb

And also this code in your devise.rb

需要“策略/linkedin”


0
投票

我对 Rails 和编码很陌生,所以我无法对这个问题提供任何解释,我挣扎了几个小时,我正在使用 devise,所以对我来说,解决这个问题的方法是通过添加降级 oauth2 版本:

gem 'oauth2', '~> 1.0'

在我的 Gemfile 中并运行:

$ bundle install

我的猜测是这与 JSON 有关,我不确定它是否会影响设计功能。 Bhavesh Vadhvana的答案也有效。


0
投票

截至 2023 年 8 月,此问题的修复方法是将omniauth-linkedin-oauth2 gem 升级到最新版本(如 https://github.com/decioferreira/omniauth-linkedin-oauth2/pull/71 已合并并发布为 v1.0.1)。

© www.soinside.com 2019 - 2024. All rights reserved.