Итак, я пишу действительно базовый JWT-генератор и валидатор на C #. Я хочу, чтобы JWT были подписаны асимметрично, чтобы я мог распространять свой Открытый ключ и чувствовать себя немного безопаснее, так как только у моего сервера будет Закрытый ключ.
Вот ссылка на код
Итак, в файле RSAKeyProvider.cs
вы можете видеть, что я генерирую закрытый и открытый ключ и сохраняю их в двух файлах..
private (String priv, String pub) CreatePrivateAndPublicKey()
{
using (var rsa = new RSACryptoServiceProvider(2048))
{
try
{
rsa.ExportParameters(false);
string pubKey = RSAKeyExtensions.ToXmlString(rsa, false);
rsa.ExportParameters(true);
string privKey = RSAKeyExtensions.ToXmlString(rsa, true);
return (privKey, pubKey);
}
finally
{
rsa.PersistKeyInCsp = false;
}
}
}
Затем в файле AuthService.cs
я обрабатываю Генерацию токена и проверку токена.Согласно моему C # сгенерированный токен проверен.Однако, когда я ввожу свой токен в jwt.io, удаляю закрытый ключ и вставляю только открытый ключ, мой токен недействителен.
Я действительно создаю токен, который недействителен или есть что-то с тем, как я делаюподпись токена / подтверждение, что это неправильно?