Tag: express jwt

在angularjs中重复ajax调用

我正在使用express-jwt来构build一个宁静的api。 现在客户端正在做重复的Ajax调用,第一个发起者是angularjs,第二个是发起者。 第一个获得204作为响应代码,第二个获得200作为响应代码。 我试图debugging,以获得这个重复的请求的来源,但我无法。 以下是204状态代码的标题详细信息 以下是204状态代码的标题详细信息 任何人都可以提出什么问题?

如何使用Express-JWT处理错误

我正在尝试使用express-jwt库,我不太明白它是如何处理错误的。 该文件说: error handling 默认行为是在令牌无效时抛出错误,所以您可以>添加自定义逻辑来pipe理未经授权的访问,如下所示: app.use(function (err, req, res, next) { if (err.name === 'UnauthorizedError') { res.status(401).send('invalid token…'); } }); 但我很困惑这是如何工作的。 如果我有一个简单的req res情况下,如果令牌是有效的,我想要调用next ,或者如果不是,那么调用next一个错误,在哪里我把该app.use函数? 例如,这是我的代码: router.post('/', expressJwt({ secret: jwtSecret, credentialsRequired: false }), (req, res, next) => { databaseController.findUser(req.user.email, (err, user) => { if (err) { return next(err) } res.json(user) }) }) 这里的err将来自我的数据库调用,而不是来自express-jwtvalidation。 任何帮助表示赞赏。

天青nodejs网站/ webapp支持JWT令牌生成和validation的encryptionalgorithm

我正在开发部署为azure色网站的nodejs应用程序。 我使用JWT令牌进行使用jws的身份validation。 这使用下面的节点encryption模块。 我创build了一个自签名的RSA256证书,并使用我的应用上传了这些文件。 应用程序使用私钥创build了jwt令牌,没有问题。 但是,当它从客户端请求validationjwt令牌时,它会抛出以下exception; exception详细信息:System.IdentityModel.SignatureVerificationFailedException:IDX10503:签名validation失败。 键试过:“System.IdentityModel.Tokens.X509AsymmetricSecurityKey System.IdentityModel.Tokens.X509AsymmetricSecurityKey Azure使用iisnode进行iis-node集成。 当我在Windows 2008 R2服务器上本地运行此应用程序时,我的应用程序validation该令牌没有任何问题。 我通过命令行节点运行了一个testingjavascript文件,通过visual studio在线编辑器来testing令牌的创build和validation。 这个testing工作正常,这表明实际的主机是能够处理解密。 我的问题; 1)有没有人在azure色的节点JS应用上使用JWT? 2)你遇到过这个例外吗? 提前致谢。

用摩卡jsunit testingexpressJwt中间件

我想弄清楚如何使用摩卡unit testing下面的路线。 router.delete('/auth/cut', expressJwt({ secret: global.secret }), function (req, res, next) { if (!req.user) { res.status(401).send().end(); } else { fileProcessor.cut(req, res); } }); 我正在使用validationJsonWebTokens并设置req.user中间件。 这是我的考验 it('DELETE /auth/cut responds Success' , function (done) { request(sharedVars.server) .delete('/api/archive/auth/cut') .set('Authorization', 'Bearer tokenid') .set('filename', 'dictionary.zip') .end(function (err, result) { if (err) { throw err; } expect(result.status).to.equal(200); done(); }); }); 以下几行 […]

REST API社交login

我不知道做什么是聪明的。 我应该检查Facebook访问令牌是否在middlware里面有效,或者更好的解决办法是检查Facebook访问令牌是否有效,然后返回JWT访问令牌以允许用户访问?

Auth0与nodejs运行用户特定的查询

我使用auth0进行身份validation用户,所以我不必pipe理用户模式,因为auth0已经保持该数据库任何人都可以指导我需要采取的步骤,如果我想显示与个人用户login时相关的数据。我使用React作为前端,Nodejs作为我的API的后端。 我是否需要在我的节点应用程序中创build用户模型并将其id与各自的logging相关联,以便我可以查询每个用户id的数据或者以其他任何方式查询数据。 在React的一面,我只是身份validationid_token作为头做一个API获取/发布请求。 在节点端,基本的Auth0文档描述了如何validation我的api: var authenticate = jwt({ secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'), audience: process.env.AUTH0_CLIENT_ID }); 但这基本上只是validation它,我如何从API检索用户特定的数据。 另外,如何向前迈进一步,实现多租户,是他们的任何相关文档,为通过基本stream程的微风提供指导。

节点expressJwt除非指定id路由

我们正在使用expressJwt库,我希望能够排除以下路由api/items/:id的GET ,但不包括任何看起来像api/items/:id/special-action路由。 到目前为止,我只能排除所有具有:id路由。 下面是我们如何实现排除具有以下内容的GET路由:id 。 this.app.use(expressJwt({ secret: secrets.JWT }).unless({ path: [ … { url: /\/api\/items\/(.)/, methods: ['GET'] }, … ] }); 我尝试了{ url: /\/api\/items\/(.)\//, methods: ['GET'] }但是它不匹配任何路由,所以没有路由:id被排除。 我正在使用正则expression式的方式,但我很难看到它。 我是否需要将(.)改为不匹配? 我想它可能是匹配的尾部斜线

NodeJS – Socket.io只允许JWTvalidation的连接

我的代码很简单: /*global require module process console*/ /*eslint-disable*/ (function (require, process) { 'use strict'; var config = require('../config') , uuid = require('node-uuid') , crypto = require('crypto') , fs = require('fs') , port = parseInt(process.env.PORT || config.server.port, 10) , serverHandler = function (req, res) { res.writeHead(404); res.end(); } , httpUrl , io , server; // Create an […]

res.redirect时没有find授权令牌

我有两个应用程序,都在Nodejs上。 一个前端和另一个后端。 我的后端应用程序受到使用express-jwt和jsonwebtoken中间件的令牌访问的保护。 我的问题是:我正在从前端向后端传递标头上的令牌,后端接受请求并正确响应。 然后在前端我将响应redirect到特定的页面( res.redirect('/') ),在那一刻我得到错误UnauthorizedError:没有find授权令牌 我的前端请求: /* Authentication */ router.post('/', function(req, res, next) { // request login service request({ uri: env.getUrl() + "/user", method: 'POST', timeout: 10000, headers: { 'Authorization': 'Bearer '.concat(global.token) }, form: { login : req.body.login, pwd : req.body.pwd } }, function(error, response, body){ if(error) { logger.error(error); res.render("error", {message: "Error getting […]

基于angular色的授权与exress-jwt?

我正在使用express-jwt来保护我的API端点,以便只有经过身份validation的用户才能访问我的API。 现在我也想根据用户angular色来保护我的API。 例如,用户只能访问一些API,如果他们是pipe理员,其他一些如果他们是超级pipe理员等。我怎么能实现这一点? 我在express-jwt github doc中find了这段代码片段: app.get('/protected', jwt({secret: 'shhhhhhared-secret'}), function(req, res) { if (!req.user.admin) return res.sendStatus(401); res.sendStatus(200); }); 它看起来像这个代码是在API控制器function授权。 这是唯一和推荐的方式吗? 有没有更好的方法来做到这一点? 任何有关这方面的最佳做法的build议?