#javascript #node.js #oauth-2.0
Вопрос:
Я попытался захватить протокол OAuth2 через wireshark. «Получить код авторизации» был захвачен, но «токен доступа к обмену» — нет.
Маркер доступа и профиль пользователя должны быть записаны раньше Get /profile_Google
, как мне это сделать?
Вот мой код:
SCOPE = ['https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile']
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: process.env.CALLBACK_GOOGLE_URL
},
function(accessToken, refreshToken, profile, cb) {
token = accessToken;
console.log('accessToken: ' accessToken);
console.log('refreshToken: ' refreshToken);
console.log('profile: ' profile);
return cb(null, profile);
}
));
app.get('/auth/google', passport.authenticate('google', { scope: SCOPE }));
app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/failed' }),
function(req, res) {
res.redirect('/profile_Google');
}
);
app.get('/profile_Google', checkUserLoggedIn, (req, res) => {
console.log('In profile_Google')
let img = "<img src="" req.user.photos[0].value "">";
html = `<h1>${req.user.id}</h1>
<h1>${req.user.displayName}</h1>
<h1>${req.user.emails[0].value}</h1>
` img;
res.send(html success)
});
});