标签: jwt

JWT(JSON Web Token)自动延长到期时间

我想对我们的新REST API实现基于JWT的身份验证.但是由于在令牌中设置了到期,是否可以自动延长它?如果他们在那段时间内积极使用该应用程序,我不希望用户在每X分钟后需要登录.这将是一个巨大的用户体验失败.

但是延长过期会创建一个新令牌(旧令牌在到期之前仍然有效).每次请求后生成一个新令牌听起来很愚蠢.当多个令牌同时有效时,听起来像是一个安全问题.当然,我可以使用黑名单使旧的旧的无效,但我需要存储令牌.JWT的一个好处就是没有存储空间.

我发现Auth0是如何解决它的.它们不仅使用JWT令牌,还使用刷新令牌:https: //docs.auth0.com/refresh-token

但同样,要实现这一点(没有Auth0),我需要存储刷新令牌并保持其过期.那么真正的好处是什么?为什么不只有一个令牌(不是JWT)并在服务器上保持过期?

还有其他选择吗?使用JWT不适合这种情况吗?

security authentication api node.js jwt

465
推荐指数
10
解决办法
17万
查看次数

使JSON Web令牌无效

对于我正在研究的新node.js项目,我正在考虑从基于cookie的会话方法切换(我的意思是,将id存储到包含用户浏览器中的用户会话的键值存储)使用JSON Web令牌(jwt)进行基于令牌的会话方法(无键值存储).

该项目是一个利用socket.io的游戏 - 在一个会话中将有多个通信通道(web和socket.io)的情况下,基于令牌的会话将非常有用.

如何使用jwt方法从服务器提供令牌/会话失效?

我还想了解在这种范例中我应该注意哪些常见(或不常见)的陷阱/攻击.例如,如果此范例容易受到与基于会话存储/ cookie的方法相同/不同类型的攻击.

所以,说我有以下(改编自这个这个):

会话商店登录:

app.get('/login', function(request, response) {
    var user = {username: request.body.username, password: request.body.password };
    // Validate somehow
    validate(user, function(isValid, profile) {
        // Create session token
        var token= createSessionToken();

        // Add to a key-value database
        KeyValueStore.add({token: {userid: profile.id, expiresInMinutes: 60}});

        // The client should save this session token in a cookie
        response.json({sessionToken: token});
    });
}
Run Code Online (Sandbox Code Playgroud)

基于令牌的登录:

var jwt = require('jsonwebtoken');
app.get('/login', function(request, response) {
    var user = {username: request.body.username, …
Run Code Online (Sandbox Code Playgroud)

javascript session session-cookies node.js jwt

357
推荐指数
14
解决办法
17万
查看次数

JWT和OAuth身份验证之间的主要区别是什么?

我有一个使用JWT的无状态身份验证模型的新SPA.我经常被要求引用OAuth进行身份验证流程,例如要求我为每个请求发送"Bearer tokens"而不是简单的令牌标头,但我认为OAuth比简单的基于JWT的身份验证要复杂得多.如果JWT身份验证的行为与OAuth相似,主要区别是什么?

我也使用JWT作为我的XSRF-TOKEN以防止XSRF,但我被要求将它们分开?我应该将它们分开吗?这里的任何帮助将不胜感激,并可能为社区带来一套指导方针.

authentication oauth jwt

276
推荐指数
7
解决办法
20万
查看次数

如果你能解码JWT它们如何安全?

我爱JWT.合作真的很有趣.我的问题是:如果我得到JWT并且我可以解码有效载荷,那么它是如何安全的?我不能只是从标题中获取令牌,解码并更改有效负载中的用户信息,并使用相同的正确编码密码将其发回?

我知道他们必须是安全的,但我真的很想了解这些技术.我错过了什么?谢谢!

security jwt express-jwt

252
推荐指数
6
解决办法
8万
查看次数

ASP.NET Web API的JWT身份验证

我正在尝试在我的Web API应用程序中支持JWT承载令牌(JSON Web令牌),我迷路了.

我看到对.NET Core和OWIN应用程序的支持.
我目前正在IIS中托管我的应用程序.

如何在我的应用程序中实现此身份验证模块?有什么办法可以使用<authentication>类似于我使用表单/ Windows身份验证的方式配置吗?

c# security jwt asp.net-web-api

238
推荐指数
5
解决办法
21万
查看次数

RS256 vs HS256:有什么区别?

我正在使用Auth0来处理我的网络应用程序中的身份验证.我正在使用ASP.NET Core v1.0.0和Angular 2 rc5,我对身份验证/安全性一般不太了解.

ASP.NET Core Web ApiAuth0文档中, JWT算法有两种选择:RS256和HS256.这可能是一个愚蠢的问题但是:

RS256和HS256有什么区别?有哪些用例(如果适用)?

jwt auth0 asp.net-core-webapi

216
推荐指数
4
解决办法
13万
查看次数

JWT的最佳HTTP授权标头类型

我想知道什么是JWT令牌最合适的AuthorizationHTTP头类型.

最受欢迎的类型之一是Basic.例如:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Run Code Online (Sandbox Code Playgroud)

它处理两个参数,如登录和密码.因此它与JWT令牌无关.

另外,我听说过Bearer类型,例如:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
Run Code Online (Sandbox Code Playgroud)

但是,我不知道它的含义.它与熊有关吗?

是否有一种在HTTP Authorization头中使用JWT令牌的特定方法?我们应该使用Bearer,还是应该简化并使用:

Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑:

或者,也许只是一个JWTHTTP标头:

JWT: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
Run Code Online (Sandbox Code Playgroud)

http-headers jwt

205
推荐指数
2
解决办法
15万
查看次数

如果JWT被盗怎么办?

我正在尝试使用JWT为我的RESTful API实现无状态身份验证.

AFAIK,JWT基本上是在REST调用期间作为HTTP头传递的加密字符串.

但是,如果有一个窃听者看到了请求并窃取了令牌呢?那么他能用我的身份伪造请求吗?

实际上,这种关注适用于所有基于令牌的身份验证.

怎么预防?像HTTPS这样的安全渠道?

authentication access-token jwt

170
推荐指数
5
解决办法
3万
查看次数

如何在javascript中解码jwt令牌

如何使用JavaScript解码JWT的有效负载?没有图书馆.因此令牌只返回我的前端应用程序可以使用的有效负载对象.

示例令牌: xxxxxxxxx.XXXXXXXX.xxxxxxxx

结果就是有效载荷:

{exp: 10012016 name: john doe, scope:['admin']}
Run Code Online (Sandbox Code Playgroud)

javascript jwt

167
推荐指数
14
解决办法
13万
查看次数

使用Postman在标头中发送JWT标记

我正在根据以下文章测试基于JWT令牌的安全性的实现.我已成功从测试服务器收到一个令牌.我无法弄清楚如何让Chrome POSTMAN REST客户端程序在标头中发送令牌.

邮差截图

我的问题如下:

1)我使用正确的标题名称和/或POSTMAN界面吗?

2)我需要基于64编码令牌吗?我以为我可以把令牌送回来.

express jwt postman

158
推荐指数
8
解决办法
19万
查看次数