0

我正在处理一些 oauth 身份验证,并且收到了以下格式的回复:

{ "access_token": "+Bx8TPv3p0ieWchU7pphuKpBIxOXjadioiZRkMjneS4=", "token_type": "Bearer", "id_token": "eyJlcGsiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTUyMSIsIngiOiJBZmhGRVpsanZwSTFhYXIybDJzblB6d3ROakZkVTZtUTlnUk13YnQ3aDlzWGVOTkF1VVBkSlE5ci1nbWN1eVBfRDNEVG8xY212SGI1SGIzTmFFYjJMMEEwIiwieSI6IkFDVk1Lc3JWMUZsMWtWdGlMX2o2b2JRU1V6bGpMTU5pSmZqWmRINk5rOXN3TG1XREdoTEhPWllBLUFsSUlSd1JJbGZYNwia2lkIjoicG1zX3N0Z18wMiIsImN0eSI6IkpXVCIsImVuYyI6IkEyNTZDQkMtSFM1MTIiLCJhbGciOiJFQ0RILUVTK0EyNTZLVyJ9.NVv3Ksn90oxZhvMpU-qOFzNBB1lCs1dwnOdPRzfB-6nTgyGTBYs_KeszSfpsDBN7S_ZyM_TQJKyCJ75etegML0hI_p8IJUSs.msWjFQBaRre2q0KNTy7Bbg.QjfDpJJxHBrYscJOhMd8kA32KCibdcfPg0Zd2CuT6zLVjtHJj6zTJTISxu1iWx-m-yfZEcyeWb8aZ7Avtpv1oIIXUu2QyVCP_x5qh2WCw337P-o-2kYm1IrOPTEO_oFiXU-FIoN_OiPLfFaxPI4usmIazJGfv_P9rnYnT1wmpAs0Fvv8PzmR2lA1ftTfoj_vKpNTbCXHJL2k8HmlfgoRxc2Bvs-3IMUa-BdrcUVYaxZVEcj8jrE75ZrscVdAWIu-T5Fq1tlpLgNhRKzdJIsW6D3yH_28Dx5V5Ylc5erLWdXi3BsLjl96_QCoAwo9HCRu_QH6L86zy5qA64ywnyP5ZxqlNpgoMwYSrtI7eKnKENYe84nbSVbE-e-bY4Fp1MeYqbL5WHmL5Q3DhjtVX6KC5NGJXozYLHziS2IKIq1vcrPvCoe1Hvw77SjlzkjH11odDYU38KTmgDSNhAxi02NYWND-c78DzTtgq4VTFcSkyN_a_CUfMNC2OPqImztB1zJ1u361gdZztL0dHs1Q5HINmFXLGPiC3VgSzvOkpUUrtmdcUCcHRT8YLkKLfvwmqPdqC41txIlYcw7pAR_DgCtjmdQVAgWtPFsWoAWKi6ONJf8.EYsQawh1gIjejXQeo3119RZ6XioO2tWVC3jhEQPr184" }

id_token 应该只是一个 jwt 令牌。但是,如果我将令牌放入 jwt.io,它会显示无效的 json 对象。

我已与我的供应商核实,他说 id_token 已在我为供应商创建的此链接上使用此公共 jwks 密钥 (enc) 加密。 http://singpasslogin.herokuapp.com/jwks

由于这个 id_token 已被加密,我现在如何解密它,我正在使用 jsonwebtoken 但不知何故我找不到任何可以用来解密它的相关方法。

通常我们会做这样的事情来获取有效载荷,但现在这不起作用。

jwt.verify(
  response.data.id_token,
  privatekey,
  { algorithms: ['ES512'] },
  (error, payload) => {
    if (error) {
      console.log(error)
    } else {
      console.log(payload)
    }
  }
)

现在 id_token 已加密,我现在应该如何读取这个 id_token?我的供应商说用户名在我收到的响应的 id_token 中,但不知何故我不知道如何阅读它。

任何帮助或解释将不胜感激。

4

0 回答 0