Я не могу понять, как мы можем выдать ошибку в приложении 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, готово принимает следующий параметр параметра.
- Error
- Информация, которую мы хотим сериализовать и сохранить в 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.
Как я могу это сделать?