首页 文章

缺少必需参数:redirect_uri with passport-google-oauth

提问于
浏览
1

在我的MEAN Stack应用程序中使用 passport-google-oauth: "0.2.0" (在此处找到:https://github.com/jaredhanson/passport-google-oauth) . 当我运行该应用程序并尝试使用Google API登录时,会返回此错误

那是一个错误 . 错误:invalid_request缺少必需参数:redirect_uri请求详细信息scope = https://www.googleapis.com/auth/plus.login response_type = code redirect_uri = client_id = xxxx-xxxx.apps.googleusercontent.com

重定向参数在这里 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(新的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 ('/');});

我确信我遗漏了一些简单的东西,但我不知道在这个问题中添加什么会给你最好的信息 . 请问,我会尽力回答你 . 这就像是相关数据 .

有趣的是,如果我手动添加callbackUrl,那么一切都很好 . 我可以很好地使用Google API . 然后我可以选择“允许”或“拒绝”请求 .

2 回答

  • 0

    在定义GoogleStrategy时,JSON密钥应该是callbackURL而不是callbackUrl(即资本URL) . 还有这个'问题';-)

  • 11

    我有一个使用相同策略的工作示例 . 由于我没有收到此错误,无法确定问题所在,但我想建议您检查以下内容:

    • 添加到您的Google策略创建(新的GoogleStrategy())范围:

    范围:'https://www.googleapis.com/auth/userinfo.email',

    • 确保在dev api console中正确配置了Google API . 特别:

    • 在API和auth下凭证| OAuth许可屏幕 - 所有必需的网址 .

    • 在API和auth下凭据 - 查找您的Web api客户端并查看您授权的所有相关URI . 如果呼叫来自或重定向到本节未列出的页面,则auth将不起作用 .

相关问题