來自令牌的 UserData 格式如下:
name:"TestUser1"
preferrred_username:"Test1"
ver:"2.0"
role: "modify"
對于某些用戶,令牌不會回傳“角色” - 如下所示(我想將這些用戶的角色分配為“讀取”直通代碼):
name:"TestUser2"
preferrred_username:"Test2"
ver:"2.0"
當我在我的組件中使用下面的代碼時,我能夠為第一個用戶獲取“角色”值作為“修改”。
let userRole = this.props.user.account.idTokenClaims.role
disabled={(userRole == "modify") ? false : true} //I disable fields based on user role.
對于第二個用戶,它會拋出錯誤說“TypeError:無法讀取未定義的屬性(讀取'0')”。我知道它回傳錯誤,因為第二個用戶沒有角色。我該如何處理該錯誤。
如果角色回傳空字串,我可以檢查并將 userRole 分配為“讀取”。
if (this.props.user.account.idTokenClaims.role == "")
{
let userRole == "read"
}
但是令牌本身并不回傳“角色”宣告。有關如何處理此問題并將 userRole 分配為“已讀”的任何建議。謝謝
uj5u.com熱心網友回復:
const userRole = this.props.user.account.idTokenClaims?.role || ‘read’
這必須解決問題。現在,當您從令牌中獲取一個值時,userRole 將具有一個值。如果它沒有進入令牌,它將默認回傳“讀取”
如果你的角色是一個串列,你可以試試這個
const data = {role: ['read', 'bla','bla','bla']}
const result = data?.role.find(item => item.toLowerCase() === 'modify') || 'read'
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/445165.html
標籤:反应 字典 错误处理 天蓝色活动目录 微软图形 API
下一篇:基于互動式地圖選擇更新復選框
