一、前言
在文章 【Abp VNext】實戰入門(十二):【1】角色權限管理 —— 后端對應的框架結構表 中講解了用戶、角色、權限、功能之間的關系以及對應的后端數據庫表架構 ; 還有AbpVnext Web項目中 自帶的集成好的用戶角色管理;
本章主要講解如何簡單快捷的使用AbpVnext自帶功能接口來修改用戶基礎信息、角色信息、賬號密碼信息等…
二、自帶的用戶管理接口
1. 通過Swagger查看自帶的用戶操作接口;
2. 重點講解用戶更新接口:/api/identity/users/{id}
接口參數:
1
{
"password": "Admin123456*", //密碼
//時間戳 必須是上一次從數據庫中提取的時間戳 每次調用更新接口 都會自動更新一次這個字段 否則出錯
"concurrencyStamp": "92c1b8fa33b34222993d233f4c8ede83",
"userName": "hanlinsha2222",//賬號
"name": "string",//姓名
"surname": "string",
"email": "user@example.com",
"phoneNumber": "string",
"lockoutEnabled": true,
"roleNames": [ //用戶歸屬的角色列表 可以沒有可以是多個
"admin",
"operator"
]
}
3. 特別注意事項 : concurrencyStamp 時間戳字段賦值
concurrencyStamp 時間戳 來自於數據庫,(也就是說要先查詢用於信息,拿到時間戳 通過時間戳來更新用戶信息);
調用更新接口后 concurrencyStamp 時間戳會自動刷新入庫
更新接口提供的concurrencyStamp 時間戳 如果和數據庫中的時間戳不一致 會提示 “對象已被修改,樂觀並發失敗”
{
"error": {
"code": "Volo.Abp.Identity:ConcurrencyFailure",
"message": "對象已被修改,樂觀並發失敗.",
"details": null,
"data": {},
"validationErrors": null
}
}
4. 接口測試截圖預覽
三、總結
搞程序就是填不完的坑,理論上是很簡單的一個接口調用,由於搞不清緣由,很容易被這個時間戳字段坑,導致接口怎么調都不行,看見問題了卻又不知道什么意思 到底怎么解決,希望本文對大家有所幫助
————————————————
原文鏈接:https://blog.csdn.net/liuyonghong159632/article/details/116353936