Express Auth(权限管理)的设置 (二)

本文介绍了在Express应用中如何设置权限管理,包括使用JWT生成和保存token,以及在User模型中添加methods来处理token。同时阐述了jwt.sign()方法的使用,以及如何将token保存到User模型的tokens子集中,并在userRouter中生成并返回。
摘要由CSDN通过智能技术生成

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: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值