首页 > 解决方案 > 如何从解码的 jwt 中获取声明参数

问题描述

我在我的反应应用程序中使用 jwt-decode 解码了一个 jwt 令牌,但我无法从中获取声明参数,我该如何获取这些参数?例如,我将从索赔参数中获得角色

这是我的解码令牌结果:

{
  aud: "SampleAudience"
​
  exp: 1564989998
​
  "http://schemas.microsoft.com/ws/2008/06/identity/claims/role": "SuperAdministrators"
​
  "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress": "sso_khani"
​
  "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "sso_khani"
​
  "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "ab57e777-91b6-4c4e-d709-08d715866555"
​
  iss: "threenine.co.uk"
}

标签: reactjsjwttokendecode

解决方案


您可以要求您的后端团队在定义的键名中提供值。还是可以的,

Object.keys(decodedObj).forEach(function (key) {
    let res = key.split("/");
    if (res.length > 1) {
        if (res[length - 1] === 'role') {
            // decodedObj[key] will be your role
        }
        // here you will get role, emailaddress, name, nameidentifier
    }
});

让我知道这是否有帮助。


推荐阅读