首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Passport-Google-OAuth回调不起作用

Passport-Google-OAuth回调不起作用
EN

Stack Overflow用户
提问于 2014-10-06 23:03:53
回答 2查看 2.4K关注 0票数 12

我有以下使用passport-google-oauth的Node代码...

代码语言:javascript
复制
app.get('/auth/google', passport.authenticate('google', { scope : ['profile', 'email'] }));

app.get('/auth/google/callback', function(req,res) {
    console.log("callback");
    passport.authenticate('google', {
                successRedirect : '/signin',
                failureRedirect : '/signin'
    });
});

还有..。

代码语言:javascript
复制
passport.serializeUser(function(user, done) {
    console.log("ser");
    done(null, user.id);
});

passport.deserializeUser(function(id, done) {
    console.log("des");
    User.findById(id, function(err, user) {
        done(err, user);
    });
});

passport.use(new GoogleStrategy({

    clientID        : 'id',
    clientSecret    : 'key',
    callbackURL     : 'http://host/auth/google/callback',
},
function(token, rtoken, profile, done) {
   console.log("proc");
   console.log(profile);
   done(null, profile);
}));

问题是,回调被调用了,但没有其他事情发生。处理函数从不命中。回调以超时结束。你知道我哪里出错了吗?

EN

回答 2

Stack Overflow用户

发布于 2015-03-30 20:36:01

我刚刚发现passport-google-oauth包导出了以下内容:

代码语言:javascript
复制
exports.Strategy =
exports.OAuthStrategy = OAuthStrategy;
exports.OAuth2Strategy = OAuth2Strategy;

这意味着,“默认”(即.策略)根本不是oauth2 ...所以你最好显式地使用OAuth2Strategy。这对我很管用。我花了几个小时才发现这就是问题所在...

票数 1
EN

Stack Overflow用户

发布于 2018-04-24 07:48:19

您没有在第二个路由'/auth/google/callback‘中使用"passport.authenticate('google')“中间件。

您的第二个路由应该如下所示:

代码语言:javascript
复制
app.get( '/auth/google/callback', 
    	passport.authenticate( 'google', { 
    		successRedirect: '/',
    		failureRedirect: '/login'
}));

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26219121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档