我有完美的工作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
但为什么会出现这种错误,我还是不明白。
非常感谢你们的帮助,伙计们!
1条答案
按热度按时间n3h0vuf21#
我也有同样的问题。经过搜索我发现宝石版是可疑的
将
omniauth-line
升级到最新版本。现在(27/04/2023)是0.1.0
对我有用!!!