Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
35 lines (27 sloc) 1.09 KB

授权(Authorization)

登录验证是为了验证你的身份,有机会进入系统的大门。而授权是为了确定做的操作,都是被允许的,你有被赋予权限。系统

需要知道你是普通用户,还是论坛坛主,又或者是整个系统的管理员。

本实例中授权(Authorization)体现在以下这个路由

    app.post("/api/book/list", requireRole("student"), function(req, res) {
        let user = req.user;
        bookModel.find({user: user['_id']}).then(function(books){
            res.send(books);
        });
    });

requireRole()函数实现如下:

    var requireRole = function(role) {
    return function(req, res, next) {
        if (req.session.user && req.session.user.role === role) {
            console.log(req.session.user);
            next();
        } else {
            res.status(403).send("你的权限不足显示图书列表");
        }            
    }
}

确定路由/api/book/list只符合角色为student

如果角色为worker访问进来,返回状态码是403和你的权限不足显示图书列表信息。