Node.js用户认证
Node.js User Authentication
我是新的nodeJs,我实际上是遵循一个教程。在教程中,使用了以下代码:在verify.js文件中编写了以下函数:
exports.verifyOrdinaryUser = function (req, res, next) {
// check header or url parameters or post parameters for token
var token = req.body.token || req.query.token || req.headers['x-access-token'];
// decode token
if (token) {
// verifies secret and checks exp
jwt.verify(token, config.secretKey, function (err, decoded) {
if (err) {
var err = new Error('You are not authenticated!');
err.status = 401;
return next(err);
} else {
// if everything is good, save to request for use in other routes
req.decoded = decoded;
next();
}
});
} else {
// if there is no token
// return an error
var err = new Error('No token provided!');
err.status = 403;
return next(err);
}
};
,在另一个文件中,函数被称为:
/*****........****/
.post(verify.verifyOrdinaryUser, function(req, res, next){
/******.......*****/
一切正常,没有问题。1-我不明白为什么功能验证。verifyOrdinaryUser没有被调用:
verify.verifyOrdinaryUser(req, res, next)
带他的形参(我们怎么可能调用一个没有他的形参的函数?)
接下来,我写了一个函数:exports.verifyAdmin = function(req, res, next){
if(req.decoded._doc.admin == false){
var err = new Error('You cannot access to this ressource!');
err.status = 401;
return next(err);
}
else {
next();
}
};
在同一文件中,验证用户是否是管理员,我必须在verifyOrdinaryUser函数之后调用此函数,我的问题是我不知道如何调用这个函数,不管有没有参数。谢谢你。
1-我不明白为什么函数验证。verifyOrdinaryUser是未调用:验证。verifyOrdinaryUser(req, res, next)
用最简单的术语来说,这是因为Express
负责将这些参数发送到指定的中间件,而不是您在这里指定
在函数verify.verifyOrdinaryUser
中,函数请求3个参数req, res, next
并接收到这3个参数,如果请求的参数不存在,则该参数值为undefined
。
我的问题是我不知道如何调用这个函数或者不带参数
就叫它
/*****........****/
.post(verify.verifyOrdinaryUser, verify.verifyAdmin, function(req, res, next){
/******.......*****/
在函数代码中你可以请求你需要的参数
exports.verifyAdmin = function(req, res){
if(req.decoded._doc.admin == false){
...
希望这能给你一些感觉,你应该谷歌Node JS中间件和基于Node JS和Express的简单教程。
相关文章:
- 快递用户认证中间件,应该做多少
- Express-stormpath登录不适用于通过电子邮件认证的用户
- 来自React App的API的用户认证
- 当使用异步认证路由和passport.js时,用户没有被序列化
- 如何防止LoopBack 2.0中未经认证的用户创建新用户?
- AngularJs的用户认证只在第二次交互时发生
- 在Angular2中保存认证用户配置文件的最佳方式
- 401未经授权的错误读取Azure移动服务表作为认证的用户(Javascript)
- 检查认证用户的用户名,然后将用户名传递给javascript
- 使用AngularFire进行Firebase用户认证
- Angular初始化时用户认证的最佳实践/模式
- Node.js用户认证
- Angular应用保护和用户认证
- 护照认证后无法检索用户
- 用户认证+ Twitter/Facebook feed (jQuery Mobile/PhoneGap)
- 通过javascript获取当前通过Active Directory认证的用户
- 如何在AngularJS路由器中检查用户是否被认证
- 如何认证一个facebook用户安全通过javascript
- 认证形式:多用户访问
- 简单的用户认证为Node.Js