在我的MEAN Stack应用程序中使用passport-google-oauth: "0.2.0"
(在此处找到:https://github.com/jaredhanson/passport-google-oauth)。当我运行该应用程序并尝试使用Google API登录时,会返回此错误
- 这是一个错误。
醇>错误:invalid_request
缺少必需参数:redirect_uri
请求详细信息 范围= https://www.googleapis.com/auth/plus.login RESPONSE_TYPE =代码 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&#34 ;; var GOOGLE_CLIENT_SECRET =" xxxx&#34 ;;
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,配置文件); }));
路线在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。然后我可以选择"允许"或者"拒绝"请求。
答案 0 :(得分:15)
在定义GoogleStrategy时,JSON键应该是callbackURL而不是callbackUrl(即大写URL)。如果这个'问题'以及; - )
答案 1 :(得分:0)
我有一个使用相同策略的工作示例。由于我没有收到此错误,无法确定问题所在,但我想建议您检查以下内容:
添加到您的Google策略创建(新的GoogleStrategy({...}))范围:
确保在dev api console中正确配置了Google API。具体做法是:
答案 2 :(得分:0)
我使用类似的东西- 1.确保这是URL,而不是uri。 2.确保您注册的回调URL与请求的URL相同。
SynthLookAndFeel
P.S:我的第一个关于stackoverflow的内容。请忽略错误并帮助我改进。