【发布时间】:2023-03-14 03:04:01
【问题描述】:
我有一个广泛依赖会话的 PHP 应用程序。我们现在正在考虑为我们的用户构建一个 API。我们最初的想法是,用户需要使用他们的电子邮件地址、密码和 API 密钥(每个用户唯一)对 api 进行身份验证。
但是,由于当前应用程序(包括模型)广泛依赖于用户会话,我不确定最佳方法。
假设 API 请求通过了正确的身份验证,是否可以接受:
- 用户通过身份验证后启动 API 调用会话
- 运行模型并将json/xml返回给用户
- 终止会话
这意味着每次 API 调用都会实例化会话,然后立即刷新。这个可以吗?还是我们应该考虑其他替代方案?
【问题讨论】:
-
你是对的,API 应该是无状态的,如果可能的话不要使用会话/cookies。但这很容易做到,没问题。但是,您应该重新使用现有的身份验证框架,因为它确实很复杂。例如,看一下github.com/delight-im/PHP-Auth,它既与框架无关,也与数据库无关。然后在每个请求中发送凭据并在服务器上 (1) 登录,(2) 执行实际工作,最后 (3) 再次注销。
标签: php api session authentication