当我尝试在本地主机上使用 omniauth-uber gem 进行身份验证时,我从 Uber 收到"error=invalid_client_id"。我在优步注册了我的应用程序,并三重检查了我的客户ID。是否有可能与我在本地主机上和优步无法识别我的应用程序有关?
config/initializer/omniauth.rb 文件(我已经在 .env 中指定了我的密钥):
Rails.application.config.middleware.use OmniAuth::Builder do
provider :uber, ENV['UBER_CLIENT_ID'], ENV['UBER_CLIENT_SECRET'], :scope => 'profile,history'
end
视图中发出请求的代码段。
<div id="sign-in">
<%= link_to "Sign in with Uber", "/auth/uber" %>
</div>
我在优步应用注册的身份验证部分下指定的 URL:
重定向网址:https://localhost:3000/auth/uber/callback
源 URI:https://localhost:3000/
我能够通过将我的优步应用程序网址从HTTPS更改为HTTP来解决问题。然后,我还从我的omniauth.rb文件中删除了ENV,并将密钥直接放入其中:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :uber, 'UBER_CLIENT_ID', 'UBER_CLIENT_SECRET', :scope => 'profile,history'
end