当前位置: 首页 > 知识库问答 >
问题:

JWT令牌身份验证、过期令牌仍在工作、.NET core Web Api

宗政德宇
2023-03-14

我创建了一个位于web客户端中的简单的Angular应用程序。当我进行身份验证时,将向客户端发送一个令牌。我现在将其存储在会话中(仍然在dev中,因此将解决以后存储在何处的安全问题)。

我不确定这(JWT(JSON Web令牌)自动延长到期)是否有用,因为就我所知,我还没有实现刷新令牌。

我注意到,当我调用logout,然后再次登录时,客户机被发送一个新的令牌--正如预期的那样。但是,如果过了令牌到期时间(为了测试,我设置为1分钟),然后刷新页面,那么令牌在我的App中似乎保持不变。也就是说,就好像令牌永远不会过期?!

谢谢你的帮助

共有1个答案

羊舌阎宝
2023-03-14

我相信这与JWTBearerOptions中的ClockSkew有关。

更改为TimeSpan.Zero,因为我相信默认设置为5分钟(但不是100%确定)。

我在下面发布了一些要放在startup.cs=>configure中的示例代码。

        app.UseJwtBearerAuthentication(new JwtBearerOptions()
        {
            AuthenticationScheme = "Jwt",
            AutomaticAuthenticate = true,
            AutomaticChallenge = true,
            TokenValidationParameters = new TokenValidationParameters()
            {
                ValidAudience = Configuration["Tokens:Audience"],
                ValidIssuer = Configuration["Tokens:Issuer"],
                ValidateIssuerSigningKey = true,
                IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Tokens:Key"])),
                ValidateLifetime = true,
                ClockSkew = TimeSpan.Zero
            }
        });
 类似资料:
  • 我在做一个全堆栈的web应用程序。我的前端由angular-cli组成,后端由node+Express构建。

  • 我有一个LaravelAPI(实际上是LumenAPI)服务于VueJS前端。Vue应用程序允许用户登录到谷歌。然后将Google令牌发送回Lumen API,后者使用Google验证令牌,然后验证电子邮件地址是否为有效用户。然后它生成一个令牌,与用户一起存储在数据库中,并返回用户对象。 我没有使用Passport或jwt auth之类的东西。那么现在,我如何使用默认的Auth中间件来验证(现在已

  • 本文向大家介绍Angular之jwt令牌身份验证的实现,包括了Angular之jwt令牌身份验证的实现的使用技巧和注意事项,需要的朋友参考一下 Angular之jwt令牌身份验证 demo https://gitee.com/powersky/jwt 介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该toke

  • 我试图用PHP为两个主题相连的领域创建一个简单的SSO系统。 因此,我想知道是否可以将包含用户用户名的签名JWT令牌从域a存储到本地存储。然后使用来自域B的相同密钥来验证JWT,这将导致成功的身份验证。 我在谷歌搜索了一些答案,我发现其中一些包含了一个中间认证域,它将负责认证。但我只想把我有的两个域联系起来。 谢了。

  • 我有一个Rest Spring BootAPI,当用户验证API返回令牌jwt时,我在浏览器中注意到该令牌出现在响应头中 如何通过Reactjs将此令牌存储在本地存储浏览器中? 我的请求代码如下所示: