我已经使用以API为中心的方法启动了一个PHP项目(项目管理项目跟踪工具)并且已经取得了相当不错的开端。
我创建了2个GET
方法到目前为止我想限制访问但不知道从哪里开始。
在我的数据库的上下文中
Project
是封装不同动作项的容器。Actionitems
被“分配”给user
。Users
存在于数据库中。Roles
分配给用户。 (User
,Admin
,Super
)我的问题是:我应该从PHP开始,只允许通过适当的用户访问api,通过登录api或其他方式?任何帮助入门都会让我开始。
首先,我已经使用JSON字符串成功创建了一个端点来访问访问资源(actionitems)来测试响应。
我想限制的现有端点
GET /api/actionitems/
使用通用结构访问表中的特定资源,如下所示:
GET /api/actionitems/4
请注意,应按如下方式访问其他api端点
每条路由最多3个路由令牌(在/ api /之后)
GET /api/users/123/actionitems (get all actionitems for user 123)
GET /api/users/123/actionitems?<more-filers> applies further filtering
您需要处理API的身份验证和授权。
这些是了解解决方案的基本步骤:
有多种方法可以通过标准化方式实现这一目标:
你可能想看看JWT令牌https://jwt.io/
这是一些快速的信息
注意:令牌中的有效负载是公共的,这意味着每个人都可以阅读它,不要提供任何敏感的信息。
如果要使用某些长期身份验证,可以将刷新令牌与jwt令牌一起使用,它们存储在数据库中,可用于创建新的jwt令牌。
希望这可以提供帮助。