Pasaport.js kullanarak istemcilerin kimliklerini doğrulamak için bir Oauth2 taşıyıcı stratejisi yapıyorum. Ben pasaport-http-taşıyıcı paketi kullanmak ve aşağıdaki geri arama uygulamaya: İstemci bilgi okumak istiyorum Daha SonraPasaport, req.user yerine Bearer stratejisi yerine req.user depolamak ister.
passport.use(new BearerStrategy(
function (accessToken, done) {
Token.findOne({ token: accessToken }).populate('client').exec(function (err, token) {
if (err) {
return done(err);
}
if (!token) {
return done(null, false);
}
if (new Date() > token.expirationDate) {
Token.remove(accessToken, function (err) {
return done(err);
});
}
if (token.client) {
var info = { scope: token.client.scopes };
return done(null, token.client, info);
}
else {
return done(null, false);
}
});
}
));
- Pasaport done()
callback'inde tarafından req.user anahtarının altına alır. İade edilen istemciyi req.user yerine req.client
değişkeninde saklamak için pasaport almanın bir yolu var mı?
Amacım, aynı uygulamaya sahip kullanıcıların ve istemcilerin kimliklerini doğrulamaktır, bu nedenle isteğimde çakışan anahtarlara sahip olamam. pasaportu initialising ederken
sayesinde
Teşekkürler! Bunu sadece belirli bir strateji için yapmanın bir yolunu biliyor musunuz? İstemciyi yalnızca 'Taşıyıcı' stratejisini kullandığımda almak istiyorum, diğer stratejiler ise bir kullanıcının kimliğini doğrulamak için tasarlandı ve bu yüzden bunları 'req.user anahtarı' altında saklamak istiyorum. – sebbulon
Başlatma pasaport düzeyinde gerçekleştiğinden, bunu Strateji düzeyinde ele almanın bir yolunu görmüyorum. –
Tamam sanırım tek yol burada açıklandığı gibi 2 farklı pasaport örneği kullanmaktır? http://stackoverflow.com/questions/25896753/passportjs-using-multiple-passports-within-express-application – sebbulon