如何在 MEAN 堆栈 Web 应用程序中实现对页面的授权?
How to achieve authorize the pages in MEAN stack web application?
我正在为 mongodb 中的应用程序编写架构。通常在asp.net和Sql中,我们为每个角色分配了pages/UIs,这意味着角色有权限(view/edit)访问页面或没有。当角色登录到应用程序时,他只能 view/Edit 在分配给该角色的页面中,不会为该角色显示未分配的页面。
在 c# 中,我通过在 pre_init 事件中编写代码来限制角色。在 MEAN Stack 应用程序中,我正在尝试使用 mongoDB。
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var rolesSchema = new Schema({
role: { name: String },
accessPage: { pagename: String, view: true, Edit: true }
});
var roles= mongoose.model('roles', rolesSchema );
我是 MEAN 堆栈的新手,我们如何在 MEAN 堆栈 Web 应用程序中实现授权相关的东西。
最简单的方法是使用 Passport:
Passport is authentication middleware for Node.js. Extremely flexible and modular, Passport can be unobtrusively dropped in to any Express-based web application. A comprehensive set of strategies support authentication using a username and password, Facebook, Twitter, and more.
在 MEAN 堆栈中,您使用的是 Express,它支持任何连接式中间件,例如 Passport。
我觉得你想要的是authorization
基于用户角色的等级,你可能要看看passport js
。使用 passport js
您将能够处理授权,并且您可以使用节点 middlewares
来处理基于用户角色的授权。
尝试在 req.user
中存储用户的角色。阅读 passport documentation 以了解有关 req.user
的更多信息
示例中间件:
var isAdmin = function (req,res,next){
if(req.user && req.user.role==='Admin')
next();
else{
return;
}
}
在你的节点路由中使用它
router.post('/someRoute', isAdmin, function (req,res,next){
//Handle your route here
});
希望这可以帮助您了解如何处理基于角色的授权。
我正在为 mongodb 中的应用程序编写架构。通常在asp.net和Sql中,我们为每个角色分配了pages/UIs,这意味着角色有权限(view/edit)访问页面或没有。当角色登录到应用程序时,他只能 view/Edit 在分配给该角色的页面中,不会为该角色显示未分配的页面。
在 c# 中,我通过在 pre_init 事件中编写代码来限制角色。在 MEAN Stack 应用程序中,我正在尝试使用 mongoDB。
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var rolesSchema = new Schema({
role: { name: String },
accessPage: { pagename: String, view: true, Edit: true }
});
var roles= mongoose.model('roles', rolesSchema );
我是 MEAN 堆栈的新手,我们如何在 MEAN 堆栈 Web 应用程序中实现授权相关的东西。
最简单的方法是使用 Passport:
Passport is authentication middleware for Node.js. Extremely flexible and modular, Passport can be unobtrusively dropped in to any Express-based web application. A comprehensive set of strategies support authentication using a username and password, Facebook, Twitter, and more.
在 MEAN 堆栈中,您使用的是 Express,它支持任何连接式中间件,例如 Passport。
我觉得你想要的是authorization
基于用户角色的等级,你可能要看看passport js
。使用 passport js
您将能够处理授权,并且您可以使用节点 middlewares
来处理基于用户角色的授权。
尝试在 req.user
中存储用户的角色。阅读 passport documentation 以了解有关 req.user
示例中间件:
var isAdmin = function (req,res,next){
if(req.user && req.user.role==='Admin')
next();
else{
return;
}
}
在你的节点路由中使用它
router.post('/someRoute', isAdmin, function (req,res,next){
//Handle your route here
});
希望这可以帮助您了解如何处理基于角色的授权。