2015-10-03 85 views
1

在我MEAN堆棧的應用程序使用passport-google-oauth: "0.2.0" REDIRECT_URI(這裏找到:https://github.com/jaredhanson/passport-google-oauth)。當我運行應用程序,並嘗試用谷歌API返回此錯誤缺少必需的參數:與護照谷歌-的OAuth

  1. That’s an error.

Error: invalid_request

Missing required parameter: redirect_uri

Request Details scope= https://www.googleapis.com/auth/plus.login response_type=code redirect_uri= client_id=xxxx-xxxx.apps.googleusercontent.com

重定向PARAM登錄是這裏 passport-init.js

var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;

var GOOGLE_CLIENT_ID = "xxx-xxx.apps.googleusercontent.com"; var GOOGLE_CLIENT_SECRET = "xxxx";

passport.use(new GoogleStrategy({
clientID: GOOGLE_CLIENT_ID,
clientSecret: GOOGLE_CLIENT_SECRET,
callbackUrl: " http://127.0.0.1:3000/auth/google/oauth2callback " }, function(accessToken, refreshToken, profile, done){ done(null,profile); }));

的路線在這裏authenticate.js

router.get('/google', passport.authenticate('google', { scope: [' https://www.googleapis.com/auth/plus.login ']}), function (req, res){ });

router.get('/google/oauth2callback', passport.authenticate('google', { successRedirect: '/auth/success', failureRedirect: '/auth/failure' }) , function (req, res) {res.redirect('/');});

我相信我缺少一些簡單的東西,但我不知道在這個問題中要添加什麼,它會給你最好的inf ormation。請問,我會盡力回答你。這就是相關數據的感覺。

有趣的是,如果我加入callbackUrl手動然後一切都很正常。我可以達到Google API的罰款。然後,我可以選擇「允許」或「拒絕」請求。

+0

我要放棄這一做法,並嘗試https://github.com/google/google-api-nodejs-client/代替。 – Trewaters

回答

9

當定義GoogleStrategy中,JSON鍵應該是callbackURL代替callbackUrl(即,大寫URL)。有這個「問題」,以及;-)

+0

謝謝!這工作。我知道我錯過了一些東西。我從來沒有想過這是如此簡單。 – Trewaters

+0

對我來說,我已經callBackURL,不得不按照你所說的'callbackURL' –

0

我必須使用相同的策略的工作示例。由於我沒有得到這個錯誤,無法查明問題是什麼,但我想建議你檢查以下內容:

  • 添加到您的谷歌戰略創造(新GoogleStrategy({...} ))範圍:

    範圍: 'https://www.googleapis.com/auth/userinfo.email',

  • 確保您的谷歌API在dev api console正確配置。具體做法是:

    1. 在API和權威性|憑證| OAuth同意屏幕 - 所有必需的網址。
    2. 在API和auth |憑證 - 查找您的web api客戶端並查看您授權的所有相關URI。如果呼叫來自或者重定向到本節未列出的頁面,則認證無效。
+0

這沒有奏效。感謝您的建議,但我仍然得到一個空的redirect_uri字段。我假設我的服務器代碼中有一處丟失了redirect_uri。錯誤中的其餘代碼來自我的代碼。我可以手動插入?缺失? redirect_uri和請求繼續像正常一樣處理。 – Trewaters

+0

您可以深入該模塊。搜索特定的字符串並查看它發生的位置。所有的模塊都嵌套在你的node_modules目錄下 – Meir

相關問題