Node-Express выдает ошибку в паспорте - PullRequest
0 голосов
/ 19 января 2019

Я не могу понять, как мы можем выдать ошибку в приложении Node-Express-Passport.

Считайте, что это моя паспортная стратегия для Meetup

passport.use(new MeetupOAuth2Strategy({
    clientID: process.env.MEETUP_CLIENT_ID,
    clientSecret: process.env.MEETUP_CLIENT_SECRET,
    callbackURL: process.env.MEETUP_CALLBACK_URL,
    passReqToCallback: true
}, (req, accessToken, refreshToken, params, profile, done) => {
      if (req.user) {
        let expiryTime = authHelper.calculatingTokenExpiryTime(params.expires_in)
        let TokenToStore = {"meetupRefreshToken": refreshToken, "meetupAccessToken": accessToken, "meetup_expires_in": expiryTime}
        FirebaseHelper.updateDataInDb("authentication", req.user.email, TokenToStore).then(() => {
            FirebaseHelper.updateDataInDb("users", req.user.email, {"meetup": true}).then(() => {
                req.user["meetup"] = true
                req.session.contextToken = {...req.session.contextToken, ...TokenToStore}
                return done(null, req.user)
            })
        })
        .catch(error => { throw error })
      }
  }));

Согласно документам Passport, готово принимает следующий параметр параметра.

  1. Error
  2. Информация, которую мы хотим сериализовать и сохранить в cookie

Но все остальные, которые я просмотрел на SF, говорят, чтобы бросить его в мой обратный вызов.

Может кто-нибудь помочь мне разобраться, как мы можем выбросить ошибку в паспорте.

Считайте, что это по моим маршрутам API

router.get('/meetup', MiddlewareAuth.UserLoggedIn, passport.authenticate('meetup', { session: false }));

router.get("/meetup/callback", (req, res, next) =>{
    passport.authenticate('meetup', (err, user, info) => {
        if (err) { return next(err); }
        if (!user) { return res.redirect(process.env.CLIENT_ADDRESS); }
        req.logIn(user, function(err) {
            if (err) { return next(err); }
            return res.redirect(process.env.CLIENT_ADDRESS);
          });
    })(req, res, next);
})

Кроме того, я не сериализую и не десериализирую своего пользователя, потому что я хочу, чтобы мой пользователь подключил свои социальные профили после входа в систему.

Может кто-нибудь помочь мне выяснить, как мы можем выбросить ошибку в паспорте

Рассмотрим мою базу данных unauthorizedRouteWithintheApp не ответил / не работает, и я хочу выдать ошибку 500.

Как я могу это сделать?

...