reactjs - 如何从解码的 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"
}
解决方案
您可以要求您的后端团队在定义的键名中提供值。还是可以的,
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
}
});
让我知道这是否有帮助。
推荐阅读
- typescript - 如何从 TypeScript 中的字符串值数组推断类型?
- python - Pydantic:导出具有不同编码的相同类型的字段
- php - 使用 Jenkins Pipeline 将 PHP 部署到 Azure Web App 时出错
- macos - 找到了 Libfreetype.6.dylib,但架构错误
- r - tidyr::pivot_longer 合并 2 组列,每组具有不同的名称前缀
- javascript - 在 javascript azure 函数中使用 Azure 的 azcopy 工具
- netty - 是否有关于 netty 基准的详细概述以及它们在做什么?
- cloud - 即使会话终止,也可以在 Google Cloud Shell 中运行程序
- amazon-redshift - Redshift - 从 STL_QUERY_METRICS 到百分比的 CPU 时间
- javascript - 根据对象数组中的属性过滤掉非空和未定义的项目