使用JWT身份验证的REST API
项目开发紧没有什么时间,发布一篇译文:使用JWT身份验证的REST API
repo
搭建API?
前几天,当引导学生学习neoan3教程时,我注意到我构建的演示实际上可以用于为各种用例提供一个API支架。我构建的结果远远超出了最初的计划:创建一个用于测试和开发的简单后端。通过创建器工具的体系结构,可以使用它来快速设置一个简单的API,然后将其构建为可扩展且强大的生产解决方案。那就对了!基于cli的API终结点生成器,可为您提供可靠的后端。
首先,让我们看一下它的设置。
先决条件
您所需要的只是本地PHP安装(7.4),composer和neoan3-cli(确保在全局范围内安装它,并且在您的路径中可用)。
安装
composer create-project sroehrl/scaffold-api
cd scaffold-api
neoan3 develop
此时,您应该看到服务器在localhost:8080上启动。
所有端点都位于localhost:8080 / api.v1 /
现在怎么办?
该应用程序已经带有基于JWT的身份验证,因此我们可以使用我们现有的应用程序(或邮递员?)来注册用户:
POST /api.v1/users
可以通过转到“ /models/users/users.model.php”来更改注册和登录行为,但是默认情况下,该模型至少期望
用户名和密码
作为字段。您可以将要存储的其他任何内容添加到用户。创建后,API将以200的状态码以及您的用户对象和JWT令牌进行响应。
注意:默认情况下,所有自定义端点都需要有效的Baerer令牌。因此,除非您在登录名(POST /api.v1/users/auth)或注册名(POST /api.v1/users)处触发,否则您将需要使用此令牌作为授权标头(请参阅自述文件中的javascript示例)。
自定义端点
现在有趣的部分:身份验证是起点,但是接下来呢?一个简单的命令将创建其他端点:
例如,php scaffold标记将生成以下文件:
/component/tags/tags.ctrl.php and /model/tags/tag.model.php
它们的内容将使以下端点可用:
POST /api.v1/tags 创建新标签
PUT /api.v1/tags/:tag-id 更新标签
GET /api.v1/tags lists/searches 列出/搜索标签(可以使用带条件的get-parameters)
GET /api.v1/tags/:tag-id 按ID检索特定标签。
是否想暂时公开您的端点?
只需在适当的方法函数中将component / tags / tags.ctrl.php中的Stateless :: restrict()注释掉即可。
到目前为止,一切都很好。现在,只需将带有json-payload的POST调用发送到/api.v1/tags,您将拥有第一个标签。
让我知道你的想法!
转:https://dev.to/sroehrl/scaffolding-rest-apis-with-jwt-authentication-loc
相关文章