所以我正在使用 Passport (JWT) 在 Laravel 上創建一些 api。
我在決定以下內容的首選方法時遇到問題:
PUT: api/users/{user_id}
PUT: api/users/me
我需要 api 以便用戶可以更改他自己的資訊,但我也希望管理員可以訪問 api 來更改所述資訊。
目前我只使用第一個 API 并檢查 ID 是否與 JWT auth 中的 ID 相同,或者請求 API 的那個是管理員。
但我也在想,也許把它們分開會更好。第一個 api 應該只能由管理員訪問,我應該從 JWT 身份驗證中獲取第二個 api 的 ID。
什么是正確的選擇?或者有更好的選擇嗎?
uj5u.com熱心網友回復:
我會說使用這種方法更好:
PUT: api/users/{user_id}
這允許任何人以相同的方式始終如一地鏈接到您自己的個人資料或某些其他用戶個人資料。然后根據您的身份驗證和授權,您可以被允許對該資源執行不同的操作。
uj5u.com熱心網友回復:
沒有正確或更好的選擇。您似乎了解使用它們中的任何一個的含義,因此實際上由您來選擇。對于該/{user_id}
版本,您必須格外小心,不要從代碼中洗掉正確的驗證規則。如果您用于/users/me
GET 操作,則必須小心設定快取標頭。如果瀏覽器會快取回應users/me
,然后另一個用戶會請求此端點,那么您可以獲得其他用戶的資料。不過,對于 PUT 操作,這不是問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/395721.html