Articles of restful authentication

如何使用两个中间件与注册方法node-restful?

是否有可能使用两个中间件与'注册'方法(节点宁静)? Router.js: personService.register(protectedApi, '/person'); PersonService.js: Person.methods(['get', 'post', 'put', 'delete']); Person.updateOptions({new: true, runValidators: true}); Person.after('post', sendErrorsOrNext).after('put', sendErrorsOrNext); 我需要得到一个中间件1的信息并传递给o中间件2,但是我想使用node-restful的注册方法。 可能吗?

使用nodejs web服务器validation用户,但没有框架

仍然试图学习javascript和nodejs。 我得到了一个点,我有一个节点的服务器,它路由我的请求,回答我,查询MySQL数据库,我认为工程相当好!问题是,即时通讯需要一些方法来validation用户将是只有一个能够在数据库中编辑,删除或创buildlogging。 这将是这样的:用户1 – 浏览页面,所有select查询,除了一些将增加访问计数器用户2 – pipe理员,所有强大 我已经调查,发现了几个这样做的方式,我不明白他们很好,但他们似乎都要求我重写几乎所有的服务器! 我使用了我认为是纯粹的nodejs, var http = require("http"); var url = require("url"); 我也使用sequelize连接到我的分贝。 调查我发现这个: – http://passportjs.org/护照的问题是,它与快递,我将不得不重写所有 expressjs再次重写 http://mcavage.me/node-restify/我也发现restify,看起来很棒,但是这意味着完全重写已经有效的东西。 nodejs我似乎无法find有关身份validation的nodejs文档。 我从来没有做过身份validation,我不明白他们是如何工作,而不涉及数据库,我认为身份validation是:用户login,他的请求连接到数据库使用数据库用户具有一定的访问权限,我知道如何做数据库方面,但客户端和服务器之间发生的事情,直到它到达数据库是超越我。 我会张贴所有的来源,随意跳过他们,希望他们会帮助别人看同样的事情。 基本上,我认为唯一剩下的事情就是某种身份validation和从浏览器上传图片到服务器的能力,并将其保存在服务器中。 我将实现一个angularjs客户端(我仍然还没有学习),将会提出所有请求。 任何帮助将非常感激! index.js var server = require("./server"); var router = require("./router"); var requestHandlers = require("./requestHandlers"); var handle = {}; handle["/insertHood"] = requestHandlers.insertHood; handle["/selectHood"] = requestHandlers.selectHood; server.start(router.route, handle); server.js […]

我的chome扩展和服务器之间的身份validation策略

我正在构buildGoogle Chrome浏览器扩展程序,并且对如何在应用程序中实施安全性有一些疑问。 我需要访问几个Google API,因此我们将使用OAuth 2.0。 所以基本上从扩展我知道哪个用户login到浏览器。 我的扩展然后需要获取并发布数据到我的(nodejs)API服务。 我想确保请求数据的用户是login到浏览器的用户。 是否有任何方式使用以前的Google身份validation过程来validation扩展和我的API之间的通信? 我真的不希望用户必须再次login,才能访问我的API。 我确信我错过了一些简单的东西,而且我还没有find适合这种情况的东西

使用Express.js Node.js标头(cURL)中的令牌

所以,我想在我的项目中使用这个代码: var allowCrossTokenHeader = function(req, res, next) { res.header("Access-Control-Allow-Headers", "token"); }; 但它不起作用,服务器挂起,不起作用,如果我评论这个代码服务器工作正常。 我需要在每个请求中检查一个令牌给我的RESTful API,任何想法怎么办?

什么样的authentication机制用于我的基于REST的API服务?

我正在做一个小型rest的web服务。 我之前使用过OAuth和其他authentication机制,但是从来没有实现过。 有人可以指导如何在NodeJ或者其他框架中做到这一点。

NODE – {代码:'UNABLE_TO_VERIFY_LEAF_SIGNATURE'}

我有一个节点中的服务,它发出一个POST请求到一个RESTful API端点来保存一些数据。 我正在使用request npm模块发出POST请求,我有URL,METHOD,HEADERS,请求正文(在这种情况下是json)。 当我启动节点服务器,我得到这个错误{ [Error: unable to verify the first certificate] code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' } ,试图search这个问题,找不到任何可行的解决scheme。 我在代理后面运行一切。 这是否与SSL相关,如果是的话,这将是什么样的最佳解决scheme? 我的节点版本是v5.6.0。

Node.js API – 允许用户只更新和删除自己的对象

我正在尝试使用Node.js w / Express构build一个RESTful API。 我对MEAN堆栈相当陌生,并且想要使用最佳实践。 我很难理解和实现的概念如下: 限制用户对象上的PUT和DELETE等路由,仅允许拥有此对象的用户的请求。 我想到的一种可能性: 为与数据库中的令牌匹配的用户创build秘密令牌 所以当创build一个用户的时候,我给他们分配一个令牌,把它存储在数据库中,并把它附加到他们的会话数据上 然后我的中间件看起来像这样: router.put('/api/users/:user_id', function(req, res, next) { // already unclear how this token should be transfered var token = req.headers['x-access-token'] || req.session.token; // update user (PUT /api/users/:user_id) User.findById(req.params.user_id, function(err, user) { if (err) { res.send(err); } else if (user.token != token) { res.json({ sucess: false, […]

RESTful API是否会返回不同的状态码或令牌过期和未经授权的错误消息?

我正在开发一个使用authentication令牌的RESTful API。 工作stream程简单; 客户端执行一个/ getAuth请求,发送用户凭证,为用户返回一个令牌。 然后,用户将以下所有请求中的令牌作为标头传递给API。 经过一段时间/呼叫次数(由服务器决定)令牌到期。 当头中有一个过期令牌的请求到达服务器时,响应状态是401 Unauthorized 。 在这种情况下,用户必须使用/ getAuth 请求另一个标记 ,依此类推。 我面对的问题是,当一个请求未经授权的任何其他原因(访问未经授权的资源),该API还返回401未经授权。 此时,客户端无法知道它是否尝试访问他无法访问的内容,或者其用户令牌是否已过期。 没有任何方式知道,它会再次要求一个令牌,并重播相同的请求,从而再次得到一个401等等。 所以我的问题是: 对于过期的令牌,如果RESTful API返回一个不同的状态码或错误消息,而不是返回未经授权的请求的状态和错误,或者客户端是否应该find某种方法来pipe理它 ? 我发现客户端的解决scheme将是保存每个请求的URL,而不是重试一个请求失败与一个新的(刚收到)令牌。 但我觉得它很肮脏。

护照jwtvalidationcallback没有被调用

我使用passport-jwt包进行简单身份validation,令牌由jsonwebtoken生成。 但问题是validationcallback从不被调用。 这里是我的passport.js代码。 var JwtStrategy = require('passport-jwt').Strategy; var User = require('../app/models/user'); var config = require('../config/database'); var opts = {}; opts.jwtFromRequest = function(req) { var token = null; if (req && req.headers) { token = req.headers.authorization; } return token; }; opts.secretOrKey = config.secret; console.log(opts); module.exports = function(passport) { passport.use(new JwtStrategy(opts, function(jwt_payload, done) { User.findOne({_id: jwt_payload._doc._id}, function(err, […]

使用Express JS检查API请求授权的更好方法

我有一个超级冗余的server.js文件,因为几乎所有属于REST API的方法都是这样开始的,因为我必须在API请求中检查客户端是否有权要求特定的事情。 var jwt = require('jsonwebtoken'); // … app.get('/getsomething', function(req, res) { "use strict"; var token = req.headers[tokenName]; if (token) { jwt.verify(token, app.get('some_secret'), { ignoreExpiration: false }, function(err, decoded) { if (err || typeof decoded === "undefined") { res.json({ status: 401, message: "unauthorized" }); } else { // actual code starts here… 什么是更好的方法?