Rails omniauth“由于“无效的凭据”而无法从Line进行身份验证”

问题描述

我拥有完善的omniauth授权,但是最近我发现,现在它无效了。当我单击“线路”登录按钮时,它会将我重定向到“线路侧”授权页面,然后单击“输入”按钮,然后将我重定向回我的站点,但是我看到的不是授权而是 Could not authenticate you from Line because "Invalid credentials".

我在facebook上也遇到了同样的错误,但是我添加token_params: { parse: :json },问题就消失了。毕竟,我根本没有此参数,但是无论如何-对于:line provider来说,它是行不通的。我尝试将其添加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中(与:faceboook提供程序相同):

config.omniauth :line,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)           

在线测试帐户设置页面中,我可以看到Callback URL

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

但是为什么会发生此错误,我还是不明白。

非常感谢您的帮助,伙计们!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)