Tag: json web token

jsonwebtoken不会过期

我为node.js使用了jsonwebtoken包: 像这样创build令牌: var token = jwt.sign(user, tokenSecret, {expiresInMinutes: 1}); validation是这样的: jwt.verify(token, tokenSecret, function(err, decoded) { if(err) return done(new Error('Invalid authentication!')); if(!decoded) return done(null, false); return done(null, decoded, { scope: 'all'}); }); 但是我的令牌永远不会过期(我在“请求”之间等了几分钟)。

validation节点PEM_read_bio_PUBKEY上的RS256 jwt失败

我试图我试图validation使用RS256algorithm的jwt 。 当使用hs256algorithm一切工作正常 let opts = { audience: 'y', issuer: `https://x.auth0.com/`, algorithms: ["RS256"] } jwt.verify(payload.token, 'secret', opts, (err, decoded) => { if (err) { console.log("invalid token in iamonline service " + err.message); return; } 我不断收到错误: PEM_read_bio_PUBKEY failed 虽然auth0有这样做的文档 ,它假定你使用快递,我不是。 我正在通过WebSocket这样做,所以没有中间件。 令人讨厌的是, HS256对我来说很好,但auth0自定义login表单似乎需要RS256 。

在程序中直接提供密码时,jsonwebtokenvalidation失败

我正在尝试使用jsonwebtoken npmvalidation和解码一个json Web令牌,使用下面的代码片段: var jwt = require('jsonwebtoken'); var fs = require('fs'); var encoded = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI.yn2Vb3hE7BKrXntCa-pTVAS7MwsaHD1csPZMiibOhwk'; fs.readFile('/etc/jwt/shared.key', function(err, result){ if (err) { console.error("error:", err); return; } var verified = jwt.verify(encoded, 'ssshhhh'); //var verified = jwt.verify(encoded, result); console.log("verified:", verified); }); 当我尝试使用硬编码值jwt.verify()时,程序失败 if (err) throw err; ^ JsonWebTokenError: invalid signature at Object.JWT.verify (/home/rvnath/projects/comviva/mbs/ecp7/dev/authserver/node_modules/jsonwebtoken/index.js:219:17) at /home/rvnath/projects/comviva/mbs/ecp7/dev/authserver/testverify.js:11:22 at fs.js:334:14 at […]

如何在Jsonwebtoken中忽略一些请求types

我想忽略一些使用令牌authentication进行检查的API URL 我想保护post,并把方法,但没有得到这个url 本地主机:3000 / API /事件/ router.use(function(request, response) { var token = request.body.token || request.query.token || request.headers['x-access-token']; if (token) { jwt.verify(token, app.get(superSecret), function(err, decoded) { if (err) return response.json({ sucess: false, message: "Failed token Authentication" }); else { request.decoded = decoded; next(); } }); } else { return response.status(403).send({ success: false, message: 'No token […]

NodeJs中间件设置标题

我想添加一个刷新令牌到中间件的头部,就像在这个问题的第一个答案中所看到的那样: 使用angular和express-jwt实现刷新令牌 后端 – 中间件: jwt.verify(token, config.secret, function(err, decoded) { if (err) { res.status(401); return res.json({ success: false, message: 'Authentication failed' }); } else { var token_exp = new Date(decoded.exp * 1000); var date = new Date(); var difference = (token_exp.getTime() – date.getTime()) / 60000; if(difference < (config.expireTimeToken / 2 )){ var expires = config.expireTimeToken […]

如何用安全的REST API开发一个安全的Node.js WebApp?

为Web用户创buildExpress/Passport WebApp并在一个项目中使用jsonwebtoken授权保护REST API是否是一个好习惯? 我现在有一个WebApp, local-passportlogin和一些HTML视图的受保护的端点。 我可以使用jsonwebtoken保护添加passport-local未受保护的REST端点,但使用两个不同的身份validation选项似乎是一种不好的做法。 这是我的第一个Node.js项目,所以我不知道。 没有更好的方法来创build我想创build的东西吗?

智威汤逊validation客户端?

我有一个angular度前端的nodejs api。 API成功使用JWT和护照来保护它的端点。 我现在意识到,在令牌过期之后,我的前端仍然允许用户请求我的api端点,而不会提示他们重新input他们的详细信息以获取新的令牌。 这是我的后端如何生成令牌: function generateToken(user) { return jwt.sign(user, secret, { expiresIn: 10080 // in seconds }); } 所以要实现这个逻辑,我想我需要validationJWT令牌客户端。 Q1,这是一个明智的做法。 Q2,我正在使用的JWT库似乎需要一个公钥才能使用它的verify()函数。 我似乎没有一个公钥,只有一个秘密,我只是编了一个秘密,所以它不是由一对产生的。 我的公钥来自哪里,或者是否有另一种validation我的令牌的方式? 这一切似乎应该是显而易见的,我已经错过了一些东西,所以如果这是一个愚蠢的问题,我很抱歉,但我似乎无法find答案?

jsonnetworking令牌,passport-jwt及其validationfunction

我最近在做jsonnetworking令牌的研究。 从我所收集的资料来看,它的一大优势就是它的无国籍。 一切你需要authentication的用户来与请求,因此你不需要“击中每个请求的数据库”,许多文章说。 但是,如果我没有弄错,那么passport-jwt的文档就是这么做的,他们在每个请求中都打了数据库。 也就是说,对于每个需要通行证authentication的请求。 passport.use(new JwtStrategy(opts, function(jwt_payload, done) { //this is a database call User.findOne({id: jwt_payload.sub}, function(err, user) { if (err) { return done(err, false); } if (user) { done(null, user); } else { done(null, false); // or you could create a new account } }); })); 我的印象是,当这个函数被调用的时候, 令牌已经被validation ,否则这个函数将不会被调用,并且用户被401 unauthorized为401 unauthorized 。 那为什么要检查用户的数据库? […]

validation节点js中的特定请求

我创build了一个参考这个链接的API它以下面的方式validation请求: router.post('/authenticate', function(req, res) { var query = "SELECT * FROM ?? WHERE ??=? and ??=? LIMIT 1"; var table = ["users","user_email",req.body.user_email, "user_password",md5(req.body.user_password)]; query = mysql.format(query,table); connection.query(query,function(err,rows){ if(err) { res.json({"Error" : true, "Message" : "Error executing MySQL query"}); } else { if(rows.length > 0){ var user = {'user_email':rows.user_email, 'user_password':rows.user_password} var token = jwt.sign(user, app.get('superSecret'), { […]

UnauthorizedError:无效的algorithmexpress-jwt

我在我的网站上显示了一些从节点服务器返回的数据。 直到今天,它都是完美的。 现在,当我进入我的网页时,我的服务器控制台上出现错误。 我使用Auth0login用户。 UnauthorizedError: invalid algorithm at C:\workspace\New\MyApp\node_modules\express-jwt\lib\index.js:100:22 at C:\workspace\New\MyApp\node_modules\express-jwt\node_modules\jsonwebtoken\index.js:155:18 at nextTickCallbackWith0Args (node.js:420:9) at process._tickCallback (node.js:349:13) 可能是什么问题?