gpt4 book ai didi

php - 构建 REST API 时如何在 CakePHP 中管理 session 启动?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:17 24 4
gpt4 key购买 nike

我之前看过这篇文章: Generally splitting admin and web app into two entities

基本上它的要点是我们可以将事物的 api 端和事物的 web 端结合在一个 cakephp 应用程序中。但是,如您所知,REST 是无状态的,没有理由期望客户端保留 cookie 或类似的东西。你们知道在 CakePHP 中 session_start 函数到底是什么时候触发的吗?当我的 API 端点被命中时,我真的想避免运行 session_start。但是,当我的常规 Web 前端受到攻击时,我将需要启动 session 。

最佳答案

对于 cake v2+,通常不要执行以下任何操作:

  • 调用 CakeSession
  • 加载 session 组件或使用 session 助手
  • 从布局中删除 $this->session->flash()
  • 不要使用授权组件

如果您仍在启动 session (可以通过在响应 header 中获取 cookie 来判断),则很容易追踪到谁在启动 session 。只需将以下行添加到 lib/Cake/Model/Datasource/CakeSession.phpstart() 方法中:

public static function start() {
debug_print_backtrace();
exit();
...
}

发出请求,您将看到罪魁祸首的调用堆栈:)

关于php - 构建 REST API 时如何在 CakePHP 中管理 session 启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com