【问题标题】:How to get token from JWE Encrypt method of Jose Sdk如何从 Jose Sdk 的 JWE Encrypt 方法中获取令牌
【发布时间】:2022-01-11 17:50:40
【问题描述】:

我是 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。我怎样才能发送这样的数据?

【问题讨论】:

    标签: c# json jwt jwe jose


    【解决方案1】:

    您确定应该发送一个您自己创建的 JWT 令牌吗? JSON 令牌通常由授权服务颁发。您和令牌的接收者都信任。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-03
      • 2021-04-12
      • 2018-07-17
      • 1970-01-01
      • 2012-10-09
      • 2017-10-11
      • 2022-01-18
      • 2020-09-22
      相关资源
      最近更新 更多