如何访问Google Oauth2护照中的个人资料信息?

问题描述

因此,我希望索引页在索引页的页脚中显示当前登录用户名称
我的Google登录路线

router.get("/login/google",passport.authenticate('google',{ scope:
    [ 'email','profile' ] }));
router.get("/login/google/callback",passport.authenticate("google",{
    successRedirect: "/videos",failureRedirect: "/login/google/error"
}));
router.get("/login/google/error",(req,res) => {
    res.send("Error in google login")
})

我的Google策略

passport.use(new GoogleStrategy({
    clientID: GOOGLE_CLIENT_ID,clientSecret: GOOGLE_CLIENT_SECRET,callbackURL: "http://localhost:3000/login/google/callback",passReqToCallback: true
  },function(request,accesstoken,refreshToken,profile,done) {
    User.findOrCreate({ googleId: profile.id },function (err,user) {
      return done(err,user);
    });
  }
));

我的索引文件的页脚

    <footer>
    <% if(!auth){ %>
      <li class="nav-item">
        <a href="/register" class="nav-link active">Register!</a>
        <li class="nav-item">
          <a href="/login" class="nav-link active">Log In</a>
        </li>
      </li>
    <% } else { %>
      <li class="nav-item">
        <a href="#" class="nav-link disabled">Welcome,<%= auth.username %> </a>
      </li>
      <li class="nav-item">
        <a href="/logout" class="nav-link active">Log Out</a>
      </li>
    <% } %>
  <div class="d-flex justify-content-center mt-3">
  <ul class="nav">
    <li class="nav-item">
      <div class="g-ytsubscribe" data-channelid="UCAjHeCmPJ5lDVWw6dL_jQng" data-layout="default" data-count="default"></div>
    </li>
  </ul>
</footer>

我的页脚

Footer IMG

解决方法

我在Google策略中将用户设置为个人资料,然后确定如何将其保存在req.user中
编辑:
换句话说,我将配置文件变量保存在另一个变量(req.user)中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...