C# JWT for ASP.NET Core-每个用户的唯一密钥
我有ASP.NET核心应用程序。我想使用JWT进行身份验证。有一个从C# JWT for ASP.NET Core-每个用户的唯一密钥,c#,.net,asp.net-core,C#,.net,Asp.net Core,我有ASP.NET核心应用程序。我想使用JWT进行身份验证。有一个从ConfigureServices(IServiceCollection services)调用的AddJwtBearer方法。此方法在启动时初始化一次IssuerSigningKey。我希望每个用户都有不同的secretKeys。我考虑创建自定义授权属性。也许有人已经解决了类似的问题 .AddJwtBearer(jwtSchemeName, jwtBearerOptions => { jwtBea
ConfigureServices(IServiceCollection services)
调用的AddJwtBearer
方法。此方法在启动时初始化一次IssuerSigningKey。我希望每个用户都有不同的secretKeys
。我考虑创建自定义授权属性。也许有人已经解决了类似的问题
.AddJwtBearer(jwtSchemeName, jwtBearerOptions => {
jwtBearerOptions.TokenValidationParameters = new TokenValidationParameters {
ValidateIssuerSigningKey = true,
IssuerSigningKey = "secretKey",
ValidateIssuer = true,
ValidIssuer = "ValidIssuer",
ValidateAudience = true,
ValidAudience = "ValidAudience ",
ValidateLifetime = true,
ClockSkew = TimeSpan.FromSeconds(5)
};
});
为什么要这样做?SecretKey可以被破坏或解密。它也可以被破坏或“解密”给每个用户。。。在任何情况下,您都可以通过创建一个拦截JWT身份验证机制的HTTP过滤器来实现这一点。如果一个用户的密钥被破坏,它将不会影响其他用户。有时我们还可以重新生成secretKey@Hereticmonkey我有一个类似的问题,但是关于旋转键而不是每个用户。但是,AssJwtBearer似乎是一个单例,我还没有找到一种方法在实例化后更改IssuerSigningKey。为什么要这样做?SecretKey可以被破坏或解密。它也可以被破坏或“解密”给每个用户。。。在任何情况下,您都可以通过创建一个拦截JWT身份验证机制的HTTP过滤器来实现这一点。如果一个用户的密钥被破坏,它将不会影响其他用户。有时我们还可以重新生成secretKey@Hereticmonkey我有一个类似的问题,但是关于旋转键而不是每个用户。但是,AssJwtBearer似乎充当了一个单例,我还没有找到在实例化之后更改issueSigningKey的方法。