从 google 快速身份验证中获取用户 ID (passport.js)

Get user ID from google authentication in express (passport.js)

我试图在用户登录后获取 user.id,但我无法弄清楚。

当我在 Postman (../api/users/829ug309hf032j) 中执行硬 GET 请求时,我得到了该用户,但我不知道如何获取在 GET 请求之前设置的 ID。

app.component.ts

const id = // id I need of logged-in user //;

this.http.get('http://localhost:3000/api/users/' + id).subscribe(data => {
  console.log(data)
});

server.js

app.get('/api/users/:id', (req, res) => {
    User.findById(req.params.id, (err, users) => {
        res.send(users)
    })
})

app.get('/auth/google/callback',
  passport.authenticate('google', { failureRedirect: '/ask' }),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/answer');
  });

我想向用户显示他们的姓名,并且仅在他们登录时显示...

<p *ngIf="user">{{ user.name }}</p>

如果身份验证成功,Passport 将使用 req.user 填充 req 对象,因此只需使用以下变体:

app.get('/api/users/me', (req, res) => {
  if (req.user) {
    res.json(req.user);
  } else {
    res.sendStatus(204);
  }
});