Как получить токен с помощью метода шифрования JWE из Jose Sdk

#c# #json #jwt #jwe #jose

Вопрос:

Я новичок в C# jose jwt. Я использовал JWE.Encrypt() метод.

 AnyJson anyJson = new AnyJson(); anyJson.page = 2; anyJson.filters = new Filters(); anyJson.filters.startDate = DateTime.Now.Date; anyJson.filters.endDate = DateTime.Now.Date;  string key = "bXF9p18KmVjgyzv3lP6otbne1W8PLo6gEE287SMyjeI=";  var payload = Newtonsoft.Json.JsonConvert.SerializeObject(anyJson);  string token = JWE.Encrypt(payload,  new[] { new JweRecipient(JweAlgorithm.A256KW, Convert.FromBase64String(key), null) },   JweEncryption.A256GCM);   

и я получаю ответ в json, как

 {"ciphertext":"PwUATwt8xgGNSh7V2BjhOtlb0rC_GpFKyKWYdx2Fum6SpY6R9TWnH2BPPbK5qJ8_A0Q9MBkbjJkV4vi_CdKPXI1HXKiFmhxtX34pktiWuP-3ggXEMe1BZV--Lz40xRB9FyDgQ9S_SdDlgC6QMNVBQMCjtiKyhFSwIT5Qwb8AZGlew5cd7AVXhcpXAofMdF1ZV8t8JfpmqJe2ucZW06_aaFe9V3bNn9S5bv9b","protected":"eyJlbmMiOiJBMjU2R0NNIn0","iv":"8MD-0rHQDoIEmRXp","tag":"9DNgPKWMfA2jBBehA5IMxQ","header":{"alg":"A256KW"},"encrypted_key":"GXZKICb9L7EP91DQ2bJod3WNOaVjkSjzBcIsH6gk0vECpUwyTNasEw"}  

но в соответствии с документом, предоставленным клиентом, нам нужно отправить этот токен JWE следующим образом

 { "request": {"Token": "eyJhbGciOiJBMjU2S1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIn0.Hwv8rJUIcWzZgfAe1g8QaXrcczAx2-lvQX0gighE8OPg6L8-L9YyikY4Xx2oWUr2mbsHnS7nbT1dJ59Nz-CpdUk5JwC--Qml.e1rlkqkDbe3yRusnTiDzMw.ddSHOBVCIpU4-jSCqpGbtAsOuDBJnjnP4xFU97TeBOghlk3quvTd0lvkunDNvKOSqlw0zi2Gtz9Y4lZNPVEyYTkqGprjqMFGulcI_0gKzyu7CaFzJjWBicspIo81ljPdwkodNnfjwnuGjEIj5UUgJHcebEaFNDVqgU4Gtsvn9g7LOHVhmGXLOzlNcRbbgp.SQqu8k5C7QoYP0uXSV6H42zb3Ft9ehSfZGzPrUE6vVw"}}  

который выглядит как JSON. Как я могу отправлять такие данные?

Ответ №1:

Вы действительно уверены, что вам следует отправить токен JWT, который вы создаете сами? обычно токен JSON выдается службой авторизации. Что и вы, и получатель токена доверяете.