在C#中生成RS256 JWT令牌

时间:2019-11-12 13:28:02

标签: c# jwt

我正在写信给您,因为我需要您的帮助。我需要开发一种使用RS256算法生成jwt令牌的方法。 目前,我有一种方法可以使用HS256算法,但是格式明显不同。 要使用RS256算法生成令牌,我需要公钥和私钥,将它们保存在txt文件中(仅用于测试),并且在要生成令牌时会读取它们。 问题是我不知道如何重新调整使用HS256算法生成令牌的代码,以便我接受RS256,您能帮我吗? 这是我用来生成HS256令牌的代码。

   var claims = new[]
        {
            new Claim(JwtRegisteredClaimNames.UniqueName, userInfo.UserId.ToString()),
            new Claim(JwtRegisteredClaimNames.Jti, guid),
            new Claim(JwtRegisteredClaimNames.NameId, "MyId"),
            new Claim("ApiClaimToken", customGuid)
        };

        var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(appSettingsJson["Token:Key"].ToString())); //_configuration["Llave_super_secreta"]));
        var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
        JwtSecurityToken token = new JwtSecurityToken(
           issuer: baseUrl,
           audience: baseUrl,
           claims: claims,
           expires: expiration,
           signingCredentials: creds);


        var authToken = new AuthToken { Token = new JwtSecurityTokenHandler().WriteToken(token), Expiration = expiration};
        return authToken;

感谢您的帮助

0 个答案:

没有答案