![](/img/trans.png)
[英]How to use Doctrine in rest api built with slim framework and php
[英]How to secure api end point in php slim framework
我已經使用php slim框架創建了一個api。 但我遇到了保護我的api的問題。 我只想為經過身份驗證的用戶訪問api。
我已經將用戶登錄添加到我的前端角度項目中。 那也行。 但是當有人直接調用api端點時,它會顯示與該端點相關的結果。
例如。 我有以下端點。
slimapi/customers/view
此端點顯示客戶表中的所有數據。
當有人在瀏覽器中鍵入此URL時。 它顯示與該api端點相關的所有數據。 但是當有人試圖在不使用前端應用程序的情況下嘗試訪問我的api端點時,我想顯示一些客戶消息。
您可以使用OpenID Connect協議 (基於OAuth 2和JSON Web令牌)。
但是對於大多數情況來說這可能是一種過度殺傷,因為如果你必須在后端基礎設施中的多個服務器和/或負載平衡器上擴展“會話”,那么JWT才有意義。 基於JWT的令牌也無法進行簡單的注銷。 如果您開始在服務器端管理JWT黑名單,則API將不再是無狀態的。
我認為HTTP標頭中的一個非常長的API令牌 ,例如UUID,在大多數情況下都是安全且足夠好的。
HTTP Authorization
請求標頭包含用於向服務器驗證用戶代理的憑據,通常在服務器響應401 Unauthorized
狀態和WWW-Authenticate標頭之后。
句法:
Authorization: <type> <credentials>
基本認證
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
基於令牌
Authorization: Bearer eyJhbGciOiJIUzI1NiIXVCJ9...TJVA95OrM7E20RMHrHDcEfxjoYZgeFONFh7HgQ
UUID作為令牌
Authorization: Bearer bb79dfb5-17fd-4ebc-acd5-548e308e5f9a
還要確保所有API請求都是SSL(HTTPS)加密的。
PS:如果您只想為Web應用程序保護您的API,那么經典的Cookies
Session
也非常安全且非常安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.