首页 > 解决方案 > 每次用户请求受保护的路由时都可以在数据库中搜索吗?

问题描述

我有一些受保护的路线,我想防止未付费用户获得这些路线..

每次用户请求其中一条路线时,我都会在数据库中搜索,如果他已经付款,我会呈现一个页面,如果他没有,我会将他重定向到主路线。

例如:

router.get('/videos', function(req, res) {
  User.findOne({email: req.user.email}, function(err, result) {
    if (err) {console.log(err);}
    else if (result.isPaid) {
      res.render('videos')
    } else {
      res.redirect('/')
    }
  })
})

我知道这有问题,但到目前为止它仍然有效.. 那么问题是什么?什么是替代品?

这是用户架构:

const UserSchema = new mongoose.Schema({
  name: {type: String, required: true},
  email: {type: String, required: true},
  password: {type: String, required: true},
  date: {type: Date, default: Date.now},
  isPaid: {type: Boolean, default: false}
})

标签: node.jsmongodbexpressauthenticationpassport.js

解决方案


推荐阅读