2011-05-13 84 views
4

我最近分叉了https://github.com/fortuity/rails3-mongoid-omniauth,並試圖讓登錄工作爲不同的提供商。它適用於Twitter和Facebook(你可以在http://jgodse-omniauth-mongoid.heroku.com/上試用),但我無法在Github上運行它。代碼快照是here at githubRails:Omniauth:Github提供商並不完全工作

我的環境是這樣的:

$ heroku info 
=== jgodse-omniauth-mongoid 
Web URL:  http://jgodse-omniauth-mongoid.heroku.com/ 
Git Repo:  [email protected]: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:   [email protected] 

[email protected] ~/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 

我對GitHub的信息 「的OAuth應用:周杰倫的Rails3中Mongoid OAuth的」 如下(從我的應用程序的個人資料頁):

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身份驗證工作?

回答

10

我不fu%^ & * g相信這一點。

我去了github.com,在那裏配置了應用程序secret,key,url,callback,並從「回調URL」和「URL」中刪除了尾部斜槓,並且工作正常。

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

這是堅果! Twitter希望回調中的尾部斜線,但Github沒有。如果需要,Github和Twitter應該允許並自動修剪它。

+1

你剛剛救了我的傍晚和我的理智,先生!謝謝!! :) – Abel 2011-09-19 02:39:50

+0

確實http://hueniverse.com/2012/07/26/oauth-2-0-and-the-road-to-hell/,「所有在郵件列表上,在會議上艱難的妥協妥協特殊設計委員會和後向通道導致了一個規範,該規範未能實現其兩個主要目標 - 安全性和互操作性。實際上,其中一個折衷方案是將其從協議重命名爲框架,另一個是增加一個免責聲明警告說規範不同於生成可互操作的實現。「 – bbozo 2015-10-29 17:48:52