使用JWT身份验证的REST API

2023-06-01 00:00:00 api jwt 身份验证

项目开发紧没有什么时间,发布一篇译文:使用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

相关文章