Tag: jwt

如何刷新Google Analytics(分析)报告API v3的访问令牌

所以我正在研究一个Node.js应用程序,它将调查Google Analytics(分析)API的x秒数量。 我已经设置了一个“服务帐户”,并将p12键转换为一个.pem文件。 初始设置看起来像这样: var authClient = new google.auth.JWT(authData.serviceEmail, authData.keyFile, null, authData.scope, ''); authClient.authorize(function(err, tokens) { if (err) { winston.log('error', 'Error authorizing with GA', {error: err}); return; } setInterval(function() { analytics.data.realtime.get({ 'auth': authClient, … }, function (err, body) { // getting 401 error here }) }, 20000); }); 我还没有意识到最初的代币有1个小时的到期date; 但是我收到的令牌看起来像这样: { access_token: …, token_type: 'Bearer', […]

当攻击者获得用于生成JWT的秘密时会发生什么?

据我所知,JWT身份validation基本上是这样工作的: 用户将login凭据发送到服务器 如果login凭证是正确的,则服务器发出一个包含用户标识和用户名的JWT(或任何你想在有效载荷中标识用户的) 此JWT是使用应用程序范围的秘密生成的,应该将其存储在环境variables中 JWT由用户存储,例如存储在localStorage中,并在每个请求中向服务器发送报头 来自auth头文件的JWT使用应用程序范围的秘密进行validation。 如果validation成功,我们知道谁发送了请求,以及请求是否被授权。 但是如果攻击者能够访问用于生成智威汤逊的秘密,会发生什么? 是不是像主密码? 随着秘密和用户的ID /用户名,任何人都可以为任何用户发布JWT,并基本上接pipe任何帐户。 这不是一个巨大的缺陷,因为一小块信息会危及整个系统(而不仅仅是一个用户帐户)? 还是我误会了?

要存储jwt令牌未解码的服务器端或不?

原谅我,如果这是一个愚蠢的问题。 正如标题所要求的,为每个请求解码令牌服务器端是不是很昂贵,存储和查找未解码的令牌不是更好吗? 你会将会话令牌存储在nodejs对象或mongodb中吗? Mongodb将是另一次往返,但是你可以使用_id轻松地find(请纠正我,如果我错了,我正在学习,所以我build议/资源=非常欢迎!)

为什么应该使用环境variables对JSON Web Tokens(JWT)进行签名?

在各种教程中,我发现他们都说“JWT应该由环境variables签名,而不是硬编码到应用程序中”。 从安全的angular度来看,如果黑客获得Node.js应用程序源代码的访问权限,我假设他们也可以在服务器的系统上看到环境variables? 从节点内部调用一个环境variables与对应用程序的源代码进行硬编码调用本质上是如何更安全的?

使用JWT令牌。 有更好的方法吗?

我通过nJWT包使用JWT令牌,使用socket.io-jwt包将我的用户validation到我的Socket.io。 或多或less,代码看起来像这样。 用户通过HTML表单发送POST请求来播放/login以生成JWT令牌。 然后,socket.io客户端使用该令牌进行初始化。 /** * Create Express server. */ const app = express(); const http = require('http').Server(app); const io = require('socket.io')(http); const socketioJwt = require('socketio-jwt'); app.set('jwt.secret', secureRandom(256, { type: 'Buffer' })); app.post('/play/login', (req, res) => { // validate user's req.body.email and req.body.password const claims = { iss: "http://app.dev", // The URL of your service […]

validation由Laravel中的Node生成的JWT

我在我们的身份validation服务器(Node.js) node_jsonwebtoken中生成一个令牌,该令牌将被传递给API(PHP Laravel),并通过tymondesigns / jwt-auth进行validation 。 由tymondesigns / jwt-auth生成的令牌将通过自己的validationfunctionnode-jsonwebtoken和jwt.io进行validation 。 由node-jsonwebtoken生成的令牌将通过自己的validation函数jwt.io成功validation, 但不会被tymondesigns / jwt-authvalidation 。 在Laravel服务器上,当我尝试validation由node-jsonwebtoken生成的令牌时,出现以下错误: TokenInvalidException in NamshiAdapter.php line 71: Token Signature could not be verified. 当我在jwt.io上查看它们时,有效载荷看起来是一样的。 我甚至试图通过传递与工作令牌相同的iat,sub,iss,exp,nbf和jti来在Node服务器上生成完全相同的令牌,但是tymondesigns / jwt-auth仍然不会接受它。 还有什么可能导致这一点,但在解码的信息不可见? 我也不是100%确定jti是如何工作的。 也许有什么阻止这个工作呢? node-jsonwebtoken(7.1.9),tymon / jwt-auth(0.5.9),namshi / jose(5.0.2)

JWTauthentication系统使用nodejs在网页上

最近我试图build立一个pipe理面板的JWTauthentication系统来pipe理login用户的简单目的,如RESTFUL API或实时数据库(Socket.io)在移动或web使用。但是有几个问题,过度。 现在的状态是我能够使用nodejs创build一个JWT令牌并将其传递到前端。 但之后,我不知道如何处理前端的令牌。 这里是问题 如果我正在使用React,Redux或ReactNative,可以将令牌保存在Redux状态,并通过ajax(Axios)请求调用它,如果不是应该在哪里存储? 如果我只是想使用它而不是任何一种单页应用程序框架的HTML,我应该在哪里存储令牌(本地存储,cookies,窗口sessionStorage,还有什么别的?) 我听说会话和cookie不是存储令牌的好地方,因为它们容易受到不同的攻击,我怎么能防止呢? 这是我卡住的最大的一点,我已经创build了一个表单供用户login,按下loginbutton后,我会做一个ajax请求,以获得令牌,收到令牌后,应该如何我保存令牌(根据q2),并通过设置标题{'x-access-token':token}将用户redirect到受保护的路由? 如果我想让用户注销,那么有什么正确的方法呢? (只需从客户端存储中删除令牌?) 我发现了很多有关创build和刷新令牌的教程,但我找不到有关获取令牌后应该做什么的任何教程? 有什么好的build议,我可以沿着? 我知道这很奇怪,但我觉得我错过了整个authenticationstream程中的一些核心概念。 任何人都可以根据我上面提出的问题来指出它吗? 对不起,我的英语不好,我尽我所能用正确的方式说出来。 这是我的github回购的问题https://github.com/xylops/backend 感谢您阅读本文

我需要为每个用户单独pipe理jwt密钥?

我使用jsonwebtoken模块实现了jwtauthentication。 但是在生成和validationjwt令牌时,是否需要为每个用户创build和pipe理任意密钥? 对每个用户分别pipe理密钥和用一个密钥生成和validationjwt令牌是否有区别?

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'}); }); 但是我的令牌永远不会过期(我在“请求”之间等了几分钟)。

nodejs – JSONWebToken不会过期

我实现了jsonwebtoken( https://www.npmjs.com/package/jsonwebtoken )并做了两个简单的function。 一个用于创build/签署具有到期时间的令牌,另一个用于validation令牌。 我使用jwt.sign('userdata', 'abc', {expiresInSeconds: 1}); 签署令牌。 令牌应该在一秒后过期,但是当我使用jwt.verify(token, 'abc', function(err, decoded) { }validation令牌时jwt.verify(token, 'abc', function(err, decoded) { }是空的并且decoded返回userdata 。