首页 > 解决方案 > 如何使用 OAuth 显示 google 帐户和 facebook 帐户的名称?

问题描述

我想在使用 Google/Facebook 帐户登录时显示名称,但是当我使用 facebook 帐户登录时,该名称不会出现在页面中,而当我使用 Google 登录时,它会出现

用户模型

const userSchema = new mongoose.Schema({

    googleId:{
   type:String
    },
    facebookId:{
        type:String,
       
    },
    facebookName:{
        type:String
    },
    googleName:{
        type:String
    }

})

谷歌和脸书路由器


router.get('/facebook',
  passport.authenticate('facebook'));

router.get('/facebook/redirect',
  passport.authenticate('facebook', { failureRedirect: '/login' }),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/blog'  );
  });



router.get('/google',
  passport.authenticate('google', { scope: ['profile'] }));

router.get('/google/redirect', 
  passport.authenticate('google', { failureRedirect: '/login' }),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/blog');
  });


博客路由器

router.get('/' , (req,res)=>{
    res.render('blog' , {
         user:req.user.facebookName , 
         user:req.user.googleName
}
)})

看法

<h3>Welcome <%=user %></h3>

标签: node.jsexpressoauth-2.0google-oauthpassport.js

解决方案


推荐阅读