ruby-on-rails Rails omniauth“无法从Line对您进行身份验证,因为“凭据无效”,“

i86rm4rw  于 2023-05-02  发布在  Ruby
关注(0)|答案(1)|浏览(203)

我有完美的工作omniauth授权,但最近我发现,现在它是无效的.当我点击“Line”登录按钮时,它会将我重定向到Line侧授权页面,在那里我点击“Enter”按钮,它会将我重定向回我的网站,但不是授权,而是看到此消息Could not authenticate you from Line because "Invalid credentials".
我在facebook上也有同样的错误,但是我添加了token_params: { parse: :json },问题就解决了。毕竟,我完成时根本没有这个参数,但无论如何- for:line提供程序都不起作用。我尝试在initializers/omniauth.rb中添加它:

# frozen_string_literal: true

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :line,
    Application.credentials[:omniauth][:line_channel_id],
    Application.credentials[:omniauth][:line_secret_id],
    token_params: { parse: :json }
end

我尝试将其添加到devise.rb(与facebookprovider相同):

config.omniauth :line, Application.credentials[:omniauth][:line_channel_id],
                         Application.credentials[:omniauth][:line_secret_id],
                         token_params: { parse: :json }

我尝试将gem omniauth-line版本从'0更改。0.5’至’0.0。“3”,但没有意义。最糟糕的是,我不知道它什么时候被打破了。我想在我将gem 'omniauth-rails_csrf_protection', '~> 0.1'添加到我的Gemfile之后。但我已经试过把它取出来了,没有任何改变。当然,我已经检查了两次证书,这是绝对正确的。但它不工作,也没有在生产或开发模式。
在日志中,我发现:
已开始

GET "/users/auth/line/callback?code=dqutKmHp3..."

ERROR -- omniauth: (line) Authentication failure! invalid_credentials: OAuth2::Error, invalid_grant: redirect_uri does not match
{"error":"invalid_grant","error_description":"redirect_uri does not match"}

在任何环境(生产、本地、转移)中出现相同错误。
当我运行rake routes时,我可以看到这个动作:

user_line_omniauth_callback GET|POST /users/auth/line/callback(.:format)

在Line测试账号设置页面,我可以看到Callback URL

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

但为什么会出现这种错误,我还是不明白。
非常感谢你们的帮助,伙计们!

n3h0vuf2

n3h0vuf21#

我也有同样的问题。经过搜索我发现宝石版是可疑的
omniauth-line升级到最新版本。现在(27/04/2023)是0.1.0
对我有用!!!

相关问题