1.
使用 jwt 保存 token
const jwt = require("jsonwebtoken");
2.
在 userSchema 中创建methods, 不同于 statics 的是 methods 是用于 instance 的, statics 是用于 whole model 的。
使用普通函数不用箭头函数是因为要用 this。
jwt.sign() 接受 2 个参数, 第一个参数可以选一个 unique 的属性, 第二个参数类似密钥。
将 token 保存到 User model 中,再 save。
userSchema.methods.generateAuthToken = async function() {
const user = this;
const token = jwt.sign({ _id: user._id.toString() }, "thisismynewmall");
user.tokens = user.tokens.concat({ token });
await user.save();
return token;
};
3. 相应的 userSchema 增加 tokens 子集
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
trim: true,
},
email: {
type: String,
unique: true,
required: true,
trim: