Сервисы:
addUser = async (body) => {
const user = new User(body);
await user.save();
if (!(await fs.pathExists(`public/images/users/${user._id}`))) {
await fs.ensureDir(`public/images/users/${user._id}`);
}
const token = await user.generateAuthToken();
console.log(token)
return { ...user, token };
};
Схема для генерации токена:
const userSchema = new mongoose.Schema({
login: {
type: String,
unique: true,
required: true,
trim: true
},
firstName: {
type: String
},
lastName: {
type: String
},
email: {
type: String
},
password: {
type: String,
required: true,
minlength: 3,
trim: true,
validate(value) {
if (value.toLowerCase().includes('password')){
throw new Error('Password cannot contain "password"');
}
}
},
avatar: {
type: String
},
role: {
type: String,
default: 'user'
},
tokens: [
{
token: {
type: String,
required: true
}
}
]
});
userSchema.methods.generateAuthToken = async function() {
const user = this;
const token = jwt.sign({ _id: user._id.toString() }, process.env.KeyWord);
user.tokens = await user.tokens.concat({ token });
user.save();
return token;
};
const User = mongoose.model("Users", userSchema);
запись в бд добавляется, но без токена, токен в принципе не генерируется. В чём проблема может быть?