Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
摘录';角色';来自Javascript中的JWT_Javascript_Reactjs_Jwt - Fatal编程技术网

摘录';角色';来自Javascript中的JWT

摘录';角色';来自Javascript中的JWT,javascript,reactjs,jwt,Javascript,Reactjs,Jwt,我已经创建了一个令牌并将其发送到我的客户端应用程序(ReactJS) 角色项如下所示: [ {0: "User"}, {1, "Admin"} ] const token = localStorage.getItem("x-access-token"); const role = JSON.parse(window.atob(token.split(".")[1])).role; 我不确定为什么我的角色项被命名为URL。但我想做的是确定JWT是否指示用户具有管理员角色 如何检查“Admin

我已经创建了一个令牌并将其发送到我的客户端应用程序(ReactJS)

角色项如下所示:

[ {0: "User"}, {1, "Admin"} ]
const token = localStorage.getItem("x-access-token");

const role = JSON.parse(window.atob(token.split(".")[1])).role;
我不确定为什么我的角色项被命名为URL。但我想做的是确定JWT是否指示用户具有管理员角色

如何检查“Admin”的角色数组?

您可以试试这个

const roles = [
  {0: "User"}, {1: "Admin"}
];
let isAdmin = false;
roles.map( role => {
  let r = Object.values( role )
  if ( r[0] == 'Admin' ) {
    isAdmin = true
  }
})

console.log( isAdmin );
你可以试试这个

const roles = [
  {0: "User"}, {1: "Admin"}
];
let isAdmin = false;
roles.map( role => {
  let r = Object.values( role )
  if ( r[0] == 'Admin' ) {
    isAdmin = true
  }
})

console.log( isAdmin );

也许是这样的:

[ {0: "User"}, {1, "Admin"} ]
const token = localStorage.getItem("x-access-token");

const role = JSON.parse(window.atob(token.split(".")[1])).role;

也许是这样的:

[ {0: "User"}, {1, "Admin"} ]
const token = localStorage.getItem("x-access-token");

const role = JSON.parse(window.atob(token.split(".")[1])).role;

数组中的项是否是对象或字符串,以及是否有什么东西在奇怪地渲染输出?第二项中类似索引的键和逗号(而不是冒号)使其难以确定。数组中的项是对象还是字符串,以及输出是否呈现异常?第二项中的索引键和逗号(而不是冒号)很难确定。谢谢@GansPotter-我不知道如何引用角色,但从我的jwt来看,属性的“名称”似乎是“”。@Craig,如果角色总是带有url和有效的json,那么这可能会帮助您-->const token={'UserId':'1','':'Unset','':[{0:'User'},{1:'Admin'},'exp':1531116565};let roles=[]Object.keys(token).forEach(key=>{if(key.match(/.*role$/){roles=token[key]}})let isAdmin=false;roles.map(role=>{let r=Object value(role)if(r[0]='Admin'){isAdmin=true})console.log}(isAdmin);谢谢@GansPotter-我不知道如何从jwt中引用角色,因为属性的“名称”似乎是“”。@Craig,如果角色总是带有url和有效的json,那么这可能会帮助您-->const-token={'UserId':'1','':'Unset','':[{0:'User'},{1:'Admin'},'exp 1531116565};let-roles=[]Object.keys(token).forEach(key=>{if(key.match(/.*role$/){roles=token[key]}})让isAdmin=false;roles.map(role=>{let r=Object.values(role)if(r[0]='Admin'){isAdmin=true})控制台.log(isAdmin);