簡體   English   中英

flask 寧靜 api 動態端點有限制

[英]flask restful api dynamic endpoints with restrictions

所以我對 flask 比較陌生,只有幾個星期。 為了進一步了解 flask,我為自己設定了一個目標,即構建自己的 api。

API 的用例:

  1. 經過身份驗證的用戶應該能夠訪問端點
    www.mydomain.com/api/並進行以下活動(僅限他們的
    任務)

    • 增加計數(POST/PUT)
    • 減少計數(刪除)
    • 重置計數
  2. 未經身份驗證的用戶應該能夠 go 到www.mydomain.com/api/john並查看 John 的指標。 我希望有很多用戶都有自己的指標

當前 state:

我可以執行、發布、獲取、放置和刪除操作(尚未設置身份驗證...)

我的問題:

有沒有辦法根據用戶 ID 限制用戶。 我的意思是 john 只能訪問對www.mydomain.com/api/john執行請求。

有幾種方法可以處理這個問題,這一切都取決於您的要求。

您可以構建自己的(這通常是我所做的),或者您可以使用Flask-User支持的基於角色的授權。

您可以在 此處閱讀有關其工作原理的更多信息。

確保查看他們的示例應用程序以了解如何將它們組合在一起。

如果您有自己的自定義權限,這將基於用戶 ID。 然后您可以遵循相同的概念,但根據用戶 ID 與角色進行處理。 甚至可能將權限級別存儲在用戶 object(is_admin、is_general_user 等)中,例如這樣的(偽代碼):

class User:
   is_admin = false
   is_read_only = false

   def __init__(**kwargs):
       # handle kwargs to set permissions

然后您可以在某些繼承的基礎工廠或其他東西(偽代碼)中定義用戶后訪問您的User變量:

u = User(**my_permissions)

if(u.is_admin):
    # do something

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM