我有一个广泛依赖 session 的 PHP 应用程序。我们现在正在考虑为我们的用户构建一个 API。我们最初的想法是,用户将需要使用他们的电子邮件地址、密码和 API key (每个用户都是唯一的)对 API 进行身份验证。
但是,由于当前应用程序(包括模型)广泛依赖于用户 session ,我不确定最佳方法。
假设 API 请求已正确验证,是否可以接受:
- 在用户通过身份验证后启动 API 调用 session
- 运行模型并返回 json/xml 给用户
- 终止 session
这意味着 session 会为每个 API 调用实例化,然后立即刷新。这个可以吗?或者我们应该考虑其他替代方案吗?
最佳答案
根据我创建 API 的经验,我发现 session 最好只持续一次请求,并在每个执行周期中重新创建 session 信息。
如果您的 session 实例化很重要,这显然会带来开销,但是如果您只是根据数据库检查凭据,那应该没问题。此外,您应该能够基于用户标识符而不是 session 将任何繁重的工作缓存在 APC 或内存缓存中,从而减少重新创建 session 所需的工作,同时确保在每个请求中验证身份验证。
关于PHP API 身份验证和 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805990/