【问题标题】:Best practice for POST data in TYPO3/Extbase (REST API)TYPO3/Extbase (REST API) 中 POST 数据的最佳实践
【发布时间】:2017-06-12 04:18:42
【问题描述】:

我正在 extbase 中构建一个扩展(TYPO3 7.6,尽快更新到 8 LTS),其中一个功能类似于 REST API。
有人需要从智能手机应用程序创建一个新的对象/数据库条目。该应用程序只会将带有数据的发布请求发送到 URL,并检查响应状态代码。

第一件事:如何访问 Post 数据?
如果我构建一个流体形式,我将获得一个对象作为我的操作的参数,这在大多数情况下已经过验证。但是手动发布请求呢?
我知道我可以通过$this->request->getArguments()获取单个参数
但这是最好的方法吗?
第二件事:如何验证用户身份?
通常我会使用 TYPO3 的登录表单,并从 $GLOBALS['TSFE'] 获取用户 ID
但在我的 API 中,我没有会话或登录表单。用户名和密码只能在每个 POST 请求中提供。我如何或应该如何对用户进行身份验证? 如果 Extbase / TYPO3 已经有这样的功能,我不想重新发明轮子。

【问题讨论】:

    标签: php typo3 extbase


    【解决方案1】:

    对于身份验证,您可以进行 HTTP 基本身份验证,其中您对用户名和密码进行 base64 编码,并通过标头与您的请求一起发送:

    Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
    

    在 TYPO3 中,您可以注册一个自定义的 AuthenticationProvider 来验证基于此的前端用户。您应该为此使用 HTTPS(好吧,无论如何您都应该使用 HTTPS)。

    至于基于 POST 数据创建记录,extbase 已经尊重 POST 数据,所以如果您只提供数据,因为它将由使用 post 方法的表单提交,那么一切都应该工作。

    如果您还需要处理 PUT 和 DELETE 请求,这将变得更加棘手。

    【讨论】:

      猜你喜欢
      • 2016-07-23
      • 2013-10-23
      • 2020-05-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 2018-05-25
      相关资源
      最近更新 更多