Не могу использовать вашу либу, так как там net.core, а у меня net4.6. Использую jose-jwt. Сервер ругается, говорит Malformed JWT. Не пойму что ему не нравится.
string PrivKey = "{" +
"\"kty\":\"EC\",\"alg\":\"ES256\",\"crv\":\"P-256\"," +
"\"x\":\"pSH0jvbtVZiseTpJZk0_yfudEIv86uwjeH_gr1qmOGA\"," +
"\"y\":\"eGdC9EIGmhCheM_T8vhS4Qwk7RfaPRBxF3W5omgBc_M\"," +
"\"d\":\"DuSjR5eZBp5S-9HNKA8kRQFA_3Akkept-dTbwFoq_3w\"" +
"}";
var js = new JavaScriptSerializer();
var jwk = js.Deserialize<IDictionary<string, string>>(PrivKey);
byte[] x = Base64Url.Decode(jwk["x"]);
byte[] y = Base64Url.Decode(jwk["y"]);
byte[] d = Base64Url.Decode(jwk["d"]);
var headers = new Dictionary<string, object>()
{
{ "kid", 2}
};
var payload = new Dictionary<string, object>()
{
{ "email", "bitzlato.demo@gmail.com" },
{ "aud", "usr" },
{ "iat", ts},
{ "jti", Guid.NewGuid().ToString() },
};
var privateKey = EccKey.New(x, y, d);
string token = Jose.JWT.Encode(payload, privateKey, JwsAlgorithm.ES256,headers);
HttpClientHandler handler = new HttpClientHandler()
{
Proxy = new WebProxy("http://127.0.0.1:8888"),
UseProxy = true,
};
var httpClient = new HttpClient(handler);
httpClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
var who = Task.Run(async () => await
httpClient.GetStringAsync("https://demo.bitzlato.com/api/auth/whoami")
).GetAwaiter().GetResult();
Не могу использовать вашу либу, так как там net.core, а у меня net4.6. Использую jose-jwt. Сервер ругается, говорит Malformed JWT. Не пойму что ему не нравится.