我正在尝试在角度5和PHP 7之间设置基于cookie的身份验证。 登录路由确实返回正确的身份验证cookie,但它不存储在浏览器中。然后后续请求不包含此cookie,导致403错误。
我的PHP会话初始化为:
ini_set('session.cookie_domain', 'my.domain.com');
session_name('domain_prod');
session_set_cookie_params(0, '/', 'my.domain.com', true, true);
session_start();
session_regenerate_id();
在前端,我正在为每个请求添加以下标头:
{
headers: new HttpHeaders({'Content-Type': 'application/x-www-form-urlencoded'}),
withCredentials: true
}
即使在PROD模式下,本地也可以正常工作。相同的后端配置也适用于angularJS。
请注意,我在本地启用了CORS,因为我正在使用其他端口:
header('Access-Control-Allow-Origin: localhost:4200');
header('Access-Control-Allow-Credentials: true');
我也尝试在我的服务器上启用它,但无济于事。
header('Access-Control-Allow-Origin: my.domain.com');
header('Access-Control-Allow-Credentials: true');
我不知道为什么没有存储cookie,可能是配置问题,但我不知道在哪里看。
感谢您的帮助。