代码之家  ›  专栏  ›  技术社区  ›  Craig

在Javascript中从JWT中提取“角色”

  •  0
  • Craig  · 技术社区  · 7 年前

    {
      UserId: "1",
      http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name: "Unset",
      http://schemas.microsoft.com/ws/2008/06/identity/claims/role: Array(2), 
      exp: 1531116565,
      iss: "http://www.example.com", 
    …}
    

    角色项如下所示:

    [ {0: "User"}, {1, "Admin"} ]
    

    我不知道为什么我的角色项目被命名为URL。但我要做的是确定JWT是否指示用户具有管理员角色。

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   GansPotter    7 年前

    你可以试试这个

    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 );
    
        2
  •  1
  •   Paul Roub jim    6 年前

    可能是这样的:

    const token = localStorage.getItem("x-access-token");
    
    const role = JSON.parse(window.atob(token.split(".")[1])).role;