ruby-on-rails - rails : Omniauth: Github provider doesn't quite work

标签 ruby-on-rails oauth github github-api

我最近 fork 了 https://github.com/fortuity/rails3-mongoid-omniauth并试图让登录为不同的提供商工作。它适用于 Twitter 和 Facebook(您可以在 http://jgodse-omniauth-mongoid.heroku.com/ 上试用),但我无法在 Github 上使用它。代码快照是here at github .

我的环境是这样的:

$ heroku info
=== jgodse-omniauth-mongoid
Web URL:        http://jgodse-omniauth-mongoid.heroku.com/
Git Repo:       git@heroku.com:jgodse-omniauth-mongoid.git
Dynos:          1
Workers:        0
Repo size:      7M
Slug size:      5M
Stack:          bamboo-mri-1.9.2
Data size:      (empty)
Addons:         Basic Logging, MongoHQ MongoHQ Free, Shared Database 5MB
Owner:          xxxxx@yyy.com

Jay@JAY-PC ~/rapps/rails3-mongoid-omniauth (master)
$ heroku config --long
BUNDLE_WITHOUT      => development:test
DATABASE_URL        => postgres://xxxxxxxxxxxxxxxxxxxx.compute-1.amazonaws.com/rrretnhwhj
FACEBOOK_APP_ID     => xxxxxxxxxxxxxxxxxxxx
FACEBOOK_APP_SECRET => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
GITHUB_CLIENT_ID    => xxxxxxxxxxxxxxxxxxxxx
GITHUB_SECRET       => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LANG                => en_US.UTF-8
MONGOHQ_URL         => mongodb://heroku:9xxxxxxxxxxxxxxxx.mongohq.com:27098/app527030
RACK_ENV            => production
SHARED_DATABASE_URL => postgres://xxxxxxxxxxxxxxxxxxxxx.compute-1.amazonaws.com/rrretnhwhj
TWITTER_KEY         => xxxxxxxxxxxxxxxxxxx
TWITTER_SECRET      => xxxxxxxxxxxxxxxxxxxxxxxxxxxx

我的“OAuth 应用程序:Jay 的 Rails3 Mongoid OAuth”的 github 信息如下(来自我的应用程序配置文件页面):
Authorization Token:   https://github.com/login/oauth/authorize
Access Token URL:      https://github.com/login/oauth/access_token
URL:     http://jgodse-omniauth-mongoid.heroku.com/
Callback URL:   http://jgodse-omniauth-mongoid.heroku.com/
Client ID: xxxxxxx
Secret:    xxxxxxxxxxxxxxxx

客户端和密码在 omniauth.rb 中设置为环境变量

身份验证发生,但它重定向到 http://jgodse-omniauth-mongoid.heroku.com/?error=redirect_uri_mismatch并且我显然没有登录。如果我将回调 URL 更改为 http://jgodse-omniauth-mongoid.heroku.com/callback ,应用程序崩溃。

我缺少什么才能使 github 身份验证正常工作?

最佳答案

我不 fu%^&*g 相信这一点。

我去了 github.com,在那里配置了应用程序 secret 、 key 、url、回调,并从“回调 URL”和“URL”中删除了尾部斜杠,并且它起作用了。

URL: http://jgodse-omniauth-mongoid.heroku.com
Callback URL:  http://jgodse-omniauth-mongoid.heroku.com

这太疯狂了! Twitter 想要回调的尾部斜线,但 Github 不想要。 Github 和 twitter 应该允许两者,然后在需要时自动修剪它。

关于ruby-on-rails - rails : Omniauth: Github provider doesn't quite work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998332/

相关文章:

ruby-on-rails - puma: puma.sock 没有那个文件或目录

php - Facebook 错误 : An error occurred with app. 请稍后再试

ruby-on-rails - 在 Ruby 中将最大哈希键值插入数组?

php - 使用 HybridAuth 时了解 base_url 参数

Spring Security 不返回 UserDetails 对象,只返回用户名

git - 将代码从一个仓库的一个分支推送到另一个仓库的另一个分支

git - 如何使用Pycharm将我的Basic github认证更改为Git操作的Token认证要求

Git 克隆分支

javascript - Coffeescript/Javascript 在服务器上不工作

ruby-on-rails - Heroku 零停机时间