我正在使用的应用程序接受三种不同类型的登录。如果客户端从某些 IP 地址或 POST 请求(从普通浏览器呈现的形式)或向 JSON 读取 API 端点连接,则自动连接。
所有三个选项都归结为调用相同的函数来注册用户并生成会话。
尽管据我所知代码路径是相同的,但其中两个始终有效,而一个始终未能将“Set-Cookie”标头添加到响应中,即使应用程序逻辑生成了一个在响应体。
从来不需要深入研究会话身份验证是如何工作到这种详细程度的,我意识到我不明白。'Set-Cookie' 标头应该来自哪里。应用程序逻辑是否应该始终手动构建标头?一旦session_start()被调用,PHP 会自动执行它吗?Apache 是否基于标头的其他部分执行此操作?
grep -ri "set.cookie" *
我在我正在使用的代码库中找不到任何东西,从而排除了 1 。