[英]Passport.js - return partial user object
因此,我正在使用passport.js身份驗證並存儲與我的用戶模型相關的幾個子文檔:
var UserSchema = new Schema({
fullName: {
type: String,
trim: true,
default: ''
},
actions: [{
title: String,
step: Number,
addIf: [String],
added: { type: Date, default: Date.now }
}]
});
我剛接觸過護照,但是想知道如何在登錄過程中將其配置為僅提供此用戶模型的一部分,類似於:
User.findOne({
_id: id
}, '-actions', function(err, user) {
// get user object
});
添加此中間件的最佳位置在哪里?
編輯:嘗試通過deserializeUser
。 有什么原因不起作用?
passport.deserializeUser(function(id, done) {
User.findOne({
_id: id
}, '-salt -password -actions', function(err, user) {
done(err, user);
});
});
您應該在passport.deserializeUser
方法中進行配置。
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findOne({_id: id}, {actions: 0}, function(err, user) {
console.log(err);
// output user
console.log(user.toJSON());
// get user object
done(err, user);
});
});
您可以在官方文檔中了解這些方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.