问题描述
我拥有完善的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 (将#修改为@)