Не удалось получить информацию профиля в обратном вызове, но удалось найти эту информацию в функции serializeUser
Я пытаюсь аутентифицировать пользователя, используя стратегию passport-github. Кажется, что все работает нормально, за исключением того, что я не могу получить информацию профиля внутри обратного вызова. Но удалось получить эту информацию в функции serializeUser.
var configurePassport = {
configureGithubStrategy : (app) => {
// STEP 1 : [Initialize passport into the app]
app.use(passport.initialize())
app.use(passport.session());
// STEP 2 : [Implement serialize and deserialize objects of passport]
passport.serializeUser(function(profile,done){
console.log(`+++ Inside Serialize +++\n${profile.username}\n+++ Note : Able The Get Profile Information +++`)
done(null,profile);
})
passport.deserializeUser(function(profile,done){
done(null,profile);
})
// STEP 3 : [Configure GitHub Strategy]
passport.use(new GitHubStrategy({
clientID: config.gitHub.clientID,
clientSecret: config.gitHub.clientSecret,
callbackURL: config.gitHub.callbackURL
},
function(accessToken, refreshToken, profile, done) {
console.log(`+++ Inside Configuration +++\n${profile}`)
done(null,profile)
}
));
}
}
const passport = require('passport')
const configurePassport = require('./config/passportConfig')
configurePassport.configureGithubStrategy(app)
app.get('/auth/github',passport.authenticate('github'));
app.get('/auth/github/callback',passport.authenticate('github',{failureRedirect : '/auth/failed'}),function(request,response){
console.log(`Unable To Get Profile Information -> ${request.profile}`)
response.redirect('/profile')
})
app.get('/profile',function(request,response){
response.status(200).json(request.profile)
})
Внутри функции обратного вызова request.profile получает undefiend
1 ответ
Поправьте меня, если я ошибаюсь, но я обнаружил, что функция done() присоединяет информацию профиля к объекту запроса как пользователь, поэтому она доступна по URL-адресу обратного вызова как request.user