Tag: 基本authentication

使用Angular.js和iOS客户端对Node.js应用程序进行身份validation

我试图尽可能多地阅读不同的答案和post,但是我仍然无法完全满足我的需求。 我正在努力制定出最好的(最有效的,但更加安全)的方式来处理用户身份validation,login等。 我有一个运行在Express上的Node.js服务器; 我有一个Angular.js的Web应用程序; 我有一个iOS应用程序。 我用Express / Node.js公开了一个RESTful API。 cookies 我读到的第一件事就是使用cookie,并在服务器端(哈希)和客户端(非哈希)存储会话ID /login令牌。 客户端会传输这个ID与每个请求,服务器将散列它,parsing它,并相应地处理请求。 这不感觉RESTful(不是一个大问题),但更重要的是,我将不得不复制我的API:一个用户名/密码authentication(例如通过curl完成)和一个基于cookie的authentication(如我的networking应用程序)? 另一个问题:如果我有一个用户的多个连接,我会做什么,例如,他们在两个浏览器,一个iPhone和一个iPadlogin。 我的存储他们的会议ids现在需要一个数组? HTTP基本身份validation 下一个想法是使用HTTP基本身份validation(使用SSL),这似乎很容易,但不推荐,因为您需要传输用户名和密码与每个请求。 如果我使用HTTP Basic Auth进行操作,那么我会将用户名和密码存储在Cookie(或HTML本地存储)中以允许“记住我”function吗? 或者我可以将两者结合起来:使用HTTP基本身份validation来实际请求(发布新post等),并使用存储在cookie中的会话标识来logging初始日志/记住我的方面? 传输会话ID比传输用户密码更安全吗? 怎么样? 会话ID将会表面上看起来像是一个密码,所以对我来说,传输密码会有和传输密码一样的安全问题。 基本身份validation似乎在所有平台上得到支持,这是理想的。 主要的缺点似乎是需要传输客户端身份validation数据与每个请求。 有没有办法来缓解这个问题? OAuth的 OAuth似乎是为了我的需要矫枉过正。 我想我会失去执行curl命令来testing我的API的能力。 OAuth如何改进cookie方法? 正如你可能知道的那样,我对可用的各种信息有点困惑,所以如果你有一套适用于这种情况的好链接,我很乐意阅读它们。 我试图find适合所有平台的解决scheme,但仍尽可能安全。 此外,如果我有任何我的术语错误,请纠正我,因为它会使我更容易search。 谢谢。 更新: 我一直在想这个问题,而且我有一个想法。 请告诉我,如果这是愚蠢的/不安全的/任何反馈,因为我不知道这是否是好的。 当用户login时,我们生成一个随机的会话ID(盐渍等)。 这个可选的会话ID被发送到客户端,如果他们select,客户端可以存储(例如在cookie中); 会话ID存储在数据库中。 然后,可以select将此会话标识作为HTTPvalidation标头或查询string与每个请求一起发送,也可以根据需要发送用户名和密码(这给了我们常规的REST API)。 在服务器端,我们首先检查会话ID参数,如果不存在,我们检查用户名/密码。 如果两者都没有错误。 在服务器上,我们检查会话ID是否与正确的用户名关联。 如果是,我们完成请求。 每次用户login时,我们都会创build一个新的会话ID或者删除当前的会话ID,并将这个响应发送给login请求。 我想这可以让我在适当的时候使用常规的REST API和基本身份validation,并保持会话/记住我的function。 它不能解决多个login问题,但否则我认为这种方式应该会。 请告诉我。

连接到Heroku PostgreSQL数据库时validation错误

我正在开发一个使用PostgreSQL的Node.js应用程序,并在Heroku上托pipe。 我的问题是,我得到这样的authentication错误: 14:32:05 web.1 | { [error: no pg_hba.conf entry for host "193.40.244.196", user "username", database "database_name", SSL off] 14:32:05 web.1 | length: 168, 14:32:05 web.1 | name: 'error', 14:32:05 web.1 | severity: 'FATAL', 14:32:05 web.1 | code: '28000', 14:32:05 web.1 | detail: undefined, 14:32:05 web.1 | hint: undefined, 14:32:05 web.1 | position: undefined, 14:32:05 […]

检查每个node.js请求authentication凭证

我用Express和connect-auth来使用node.js来authentication用户。 这是请求/索引时的validation: if(req.isAuthenticated()) { res.redirect('/dashboard'); } else { res.render('index', { layout: 'nonav' }); } 但是,在注销并返回到fe'/ dashboard'后,我可以看到仪表板。 我怎样才能把validation检查到每一个请求,以确保有一个有效的用户在任何时候? 更新我没有任何authentication问题,一切工作正常! 我需要一个解决scheme,它检查每个路由/请求,如果有一个有效的用户,而不是在路由实现中放置一个函数或if语句,因为整个应用程序无论如何都需要一个有效的用户。 Express-Authentication-Example在路由定义中使用“restrict”,但是路由很多,很容易被遗忘。

基于NodeJS的HTTP客户端:如何validation请求?

这是我必须做一个简单的GET请求的代码: var options = { host: 'localhost', port: 8000, path: '/restricted' }; request = http.get(options, function(res){ var body = ""; res.on('data', function(data) { body += data; }); res.on('end', function() { console.log(body); }) res.on('error', function(e) { console.log("Got error: " + e.message); }); }); 但是“/ restricted”这个path需要一个简单的基本HTTPauthentication。 我如何添加凭据进行身份validation? 在NodeJS手册中,我找不到与基本httpauthentication相关的任何东西。 提前致谢。

使用passport.js在node.js中进行身份validation后,redirect到上一页

我试图build立一个使用node.js,express和passport.js的login机制。 login本身工作得相当不错,会话也很好地存储在redis中,但是在提示用户进行身份validation之前,将用户redirect到他所在的位置时遇到了一些麻烦。 例如,用户链接http://localhost:3000/hidden然后被redirect到http://localhost:3000/login但是我希望他再次被redirect到http://localhost:3000/hidden 。 这样做的目的是,如果用户随机访问一个页面,他需要首先login,他应该被redirect到/ login站点提供他的凭据,然后被redirect到他以前试图访问的网站。 这是我的login信息 app.post('/login', function (req, res, next) { passport.authenticate('local', function (err, user, info) { if (err) { return next(err) } else if (!user) { console.log('message: ' + info.message); return res.redirect('/login') } else { req.logIn(user, function (err) { if (err) { return next(err); } return next(); // <-? Is this line […]

nodejs护照authentication令牌

我正在编写一个nodejs应用程序,我想用它作为一个web应用程序以及一个API提供程序。 一旦用户通过身份validation,我想为该用户分配一个令牌用于后续请求。 这对Web应用程序的护照很有效,因为我只是用会话中的令牌序列化和反序列化用户。 但是,在响应API请求时,不存在用于存储会话信息的Cookie。 理想情况下,护照会在会话和请求主体中查找令牌。 有什么办法来configuration护照来完成这个?

如何在node.js中实现loginauthentication

我有这个节点服务器运行: var server=http.createServer(function(request, responsehttp) { if (request.method == 'POST') { var body = ''; request.on('data', function (data) { body += data; }); request.on('end', function () { var POST = qs.parse(body); processquery(POST, request, responsehttp); }); } else { var url_parts = url.parse(request.url, true); var query = url_parts.query; console.log(query); processquery(query, request, responsehttp); } }); 我想为此服务器添加login表单。当用户通过身份validation时,它会显示。 function processquery(query, […]

如果有基本授权,如何在Node.js中使用http.client

按照标题,我该怎么做? 这是我的代码: var http = require('http'); var client = http.createClient(80, 'www.example.com'); // to access this url i need to put basic auth. var request = client.request('GET', '/', {'host': 'www.example.com'}); request.end(); request.on('response', function (response) { console.log('STATUS: ' + response.statusCode); console.log('HEADERS: ' + JSON.stringify(response.headers)); response.setEncoding('utf8'); response.on('data', function (chunk) { console.log('BODY: ' + chunk); }); });