Как я могу получить доступ к информации профиля в Google Oauth2 passport?

#javascript #node.js #express #passport.js #passport-google-oauth

#javascript #node.js #экспресс #passport.js #паспорт-google-oauth

Вопрос:

Итак, я хочу, чтобы на индексной странице отображалось имя пользователя, вошедшего в систему в данный момент, в нижнем колонтитуле индексной страницы.
Мои маршруты входа в 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>
  

Мой нижний колонтитул
Изображение нижнего колонтитула

Комментарии:

1. Можете ли вы показать маршрут, по которому вы передаете данные в нижний колонтитул?

2. @jasonandmonte Я уже нашел ответ на этот вопрос, но спасибо

Ответ №1:

Я установил пользователя в профиль в своей стратегии Google, а затем idk, как он был сохранен в req.user
РЕДАКТИРОВАТЬ:
другими словами, я сохранил переменную профиля в другой переменной (req.user).