是否有可能像在Apache中一样在Node.js中进行基本身份validation?
http://doc.norang.ca/apache-basic-auth.html
我知道,如果使用Express或Connect,我可以添加中间件function并进行用户validation,但是我试图限制整个区域(我不需要从一个数据库中仅对几个已定义的用户进行身份validation)我正在使用Ubuntu。
https://github.com/kaero/node-http-digest
如何在IIS中设置身份validation方法
Apache基本authentication是否防御暴力攻击?
如何通过使用Windowsauthentication的Web服务来避免使用Delphi HTTPRio调用的login对话框
如何覆盖Nginx中的全局auth_basic
匿名前的IIS Windows身份validation
这是我能做的事情,但我不确定在代码中“暴露”或直接写入用户和密码是否足够安全。
非常感谢。
将apache2摘要authentication信息传递给mod_wsgi运行的wsgi脚本
不允许集成Windows身份validation*为其中一个域*
Nginx的basic_auth
Linux相当于WinCrypt API
apache:重写前的基本authentication
Passport提供了一个干净的机制来实现基本的身份验证。 我在我的Node.js Express应用程序中使用它来保护我的基于Angularjs的UI以及我的RESTful API。 要在您的应用程序中启动并运行护照,请执行以下操作:
npm安装护照
npm install passport-http(包含基本认证的“BasicStrategy”对象)
var passport = require('passport') var BasicStrategy = require('passport-http').BasicStrategy passport.use(new BasicStrategy( function(username,password,done) { if (username.valueOf() === 'yourusername' && password.valueOf() === 'yourpassword') return done(null,true); else return done(null,false); } )); // Express-specific configuration section // *IMPORTANT* // Note the order of WHERE passport is initialized // in the configure section--it will throw an error // if app.use(passport.initialize()) is called after // app.use(app.router) app.configure(function(){ app.use(express.cookieParser()); app.use(express.session({secret:'123abc',key:'express.sid'})); app.set('views',__dirname + '/views'); app.set('view engine','jade'); app.set('view options',{ layout: false }); app.use(express.bodyParser()); app.use(express.methodoverride()); app.use(express.static(__dirname + '/public')); app.use(passport.initialize()); app.use(app.router); app.use(logger); }); // Routes app.get('/',passport.authenticate('basic',{ session: false }),routes.index); app.get('/partials/:name',routes.partials); // JSON API app.get('/api/posts',api.posts); app.get('/api/post/:id',api.post) // --Repeat for every API call you want to protect with basic auth-- app.get('*',routes.index);
把这个
app.use(express.basicAuth(function(user,pass) { return user === 'test' && pass === 'test'; }));
在行前
app.use(app.router);
使用http basic auth保护所有路由
看看: node.js的用户认证库?
它不能100%回答你的问题 – 但也许有帮助。
我觉得不错的选择可能是http-auth模块
// Authentication module. var auth = require('http-auth'); var basic = auth.basic({ realm: "Simon Area.",file: __dirname + "/../data/users.htpasswd" // gevorg:gpass,Sarah:testpass ... }); // Application setup. var app = express(); app.use(auth.connect(basic)); // Setup route. app.get('/',function(req,res){ res.send("Hello from express - " + req.user + "!"); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。