[英]Shopper cannot see products
完成本 教程。 我已經創建了一個買家組織和買家用戶buyer01
,並且我已經將產品添加到買家的目錄中。 我希望看到buyer01
有權訪問該產品。
當我使用buyer01
的憑據獲取身份驗證令牌並將 GET 發送到/v1/me
時,我得到了這個:
{
"Buyer": {
"ID": "BUYER_ORGANIZATION",
"DefaultCatalogID": "BUYER_ORGANIZATION"
},
"Supplier": null,
"Seller": {
"ID": "XXXXXXXXXXXXX"
},
"ID": "BUYER_USER",
"CompanyID": "BUYER_ORGANIZATION",
"Username": "buyer01",
"Password": null,
"FirstName": "Buyer",
"LastName": "User",
"Email": "buyer@email.com",
"Phone": null,
"TermsAccepted": null,
"Active": true,
"xp": null,
"AvailableRoles": [
"MeAdmin",
"PasswordReset",
"Shopper"
],
"Locale": null,
"DateCreated": "2022-12-21T00:43:53.507+00:00",
"PasswordLastSetDate": "2022-12-21T00:43:53.543+00:00"
}
但是當我嘗試使用 GET /v1/me/products
查看該用戶有權訪問的產品時,我得到了這個:
{
"Errors": [
{
"ErrorCode": "Auth.InsufficientRoles",
"Message": "User does not have role(s) required to perform this action.",
"Data": {
"RequiredRoles": [
"Shopper"
],
"AssignedRoles": [
"MeAdmin",
"PasswordReset"
]
}
}
]
}
為什么第一個請求顯示“購物者”角色存在,而第二個請求顯示它缺失?
我發現了問題。 當我請求buyer01
的訪問令牌時,我保留了之前請求管理令牌時的“范圍”設置,假設“購物者”在admin01
用戶的記錄范圍設置中:
scope: "CatalogAdmin BuyerReader MeAdmin InventoryAdmin PasswordReset OrderAdmin PriceScheduleAdmin ProductAdmin ProductAssignmentAdmin ShipmentAdmin",
我現在看到它沒有“購物者”,所以當我為買家用戶請求一個具有 記錄范圍設置的新令牌時,我能夠得到 200 響應:
scope: "MeAdmin PasswordReset Shopper",
{
"Meta": {
"Facets": [],
"Page": 1,
"PageSize": 20,
"TotalCount": 0,
"TotalPages": 0,
"ItemRange": [
1,
0
],
"NextPageKey": null
},
"Items": []
}
棘手的部分是,即使在第一個請求中返回的用戶權限包含“購物者”,我請求的訪問令牌並未將其包含在范圍內,因此出現 403。
然而,精明的讀者會注意到我仍然沒有看到我的產品。 當我弄清楚那部分時,我會更新我的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.