如何在 Web API C# 中加密 JWT 令牌



我的 Jwt 令牌如下所示:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUuY29tIiwiaWF0IjoxMzU2OTk5NTI0LCJuYmYiOjEzNTcwMDAwMDAsImV4cCI6MTQwNzAxOTYyOSwianRpIjoiaWQxMjM0NTYiLCJ0eXAiOiJodHRwczpcL1wvZXhhbXBsZS5jb21cL3JlZ2lzdGVyIiwidGVzdC10eXBlIjoiZm9vIn0.UGLFIRACaHpGGIDEEv-4IIdLfCGXT62X1vYx7keNMyc

如果我复制上面的 JWT 令牌并将其粘贴到 https://jwt.io/那么实际信息如下所示

图像

我想加密 JWT 令牌,没有人可以访问我在 Web API 中的信息。所以,我想使用任何加密算法,如果是这样,请为我提供适当的解决方案

这是我的启动.cs文件来授权 JWT 令牌。

        // Api controllers with an [Authorize] attribute will be validated with JWT
        app.UseJwtBearerAuthentication(
            new JwtBearerAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Active,
                AllowedAudiences = new[] { audience },
                IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
                {
                    new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
                }
            });
    }

为什么你认为有人可以看到这些信息是一个问题?如果使用 JWT 进行身份验证,则只有刚刚通过身份验证的用户才能获得此令牌,并且可能包含有关此用户的信息。因此,用户能够看到有关自己的信息并没有什么坏处。

最重要的是,令牌是mac的,因此没有人可以伪造它并假装是另一个用户,这应该足够了。

正如评论中提到的,无论如何您都应该使用 TLS,因此它在过渡中是加密的。

最新更新