Jwt.io говорит, что мой токен недействителен, но мой C # говорит иначе - PullRequest
0 голосов
/ 12 сентября 2018

Итак, я пишу действительно базовый 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, удаляю закрытый ключ и вставляю только открытый ключ, мой токен недействителен.

Я действительно создаю токен, который недействителен или есть что-то с тем, как я делаюподпись токена / подтверждение, что это неправильно?

...