/
den3011den
/
Tangy
Обзор
Документация
Войти
/
den3011den
/
Tangy
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
TangyWeb_Client/Helper/JwtParser.cs
29 строк
918 B
Денис Богомолов
Подготовка к реализации сервиса регистрации и авторизации клиентского приложения на Blazor WASM
12 апр 2022, 02:05
12 апр 2022, 02:05
27af5f0
Код
Авторство
О чём код?
using System.Security.Claims; using System.Text.Json; namespace TangyWeb_Client.Helper { public static class JwtParser { public static IEnumerable<Claim> ParseClaimsFromJwt(string jwt) { var claims = new List<Claim>(); var payload = jwt.Split('.')[1]; var jsonBytes = ParseBase64WithoutPadding(payload); var keyValuePairs = JsonSerializer.Deserialize<Dictionary<string, object>>(jsonBytes); claims.AddRange(keyValuePairs.Select(kvp => new Claim(kvp.Key, kvp.Value.ToString()))); return claims; } private static byte[] ParseBase64WithoutPadding(string base64) { switch (base64.Length % 4) { case 2: base64 += "=="; break; case 3: base64 += "="; break; } return Convert.FromBase64String(base64); } } }