使用angularJS代码在远程服务器上设置$\会话(php)无效
我为登录验证实现了一个带有php的api: 这将设置登录会话id(例如,在验证用户凭据之后) 如果会话id设置与否,则检查登录是否有效 这会破坏会话并需要注销 在代码中进行身份验证登录时,我将登录设置为$\u SESSION[“id”]=1 然后auht检查就可以了,否则AUH检查将包含错误 当我在浏览器或ReST客户端中调用这些URL时, 但是在我的angularJS代码中使用它们会返回错误 会话集似乎无法通过客户端中的PHPSESSID使用,并且无法正常工作使用angularJS代码在远程服务器上设置$\会话(php)无效,php,session,cross-domain,cors,remote-server,Php,Session,Cross Domain,Cors,Remote Server,我为登录验证实现了一个带有php的api: 这将设置登录会话id(例如,在验证用户凭据之后) 如果会话id设置与否,则检查登录是否有效 这会破坏会话并需要注销 在代码中进行身份验证登录时,我将登录设置为$\u SESSION[“id”]=1 然后auht检查就可以了,否则AUH检查将包含错误 当我在浏览器或ReST客户端中调用这些URL时, 但是在我的angularJS代码中使用它们会返回错误 会话集似乎无法通过客户端中的PHPSESSID使用,并且无法正常工作 它与沙盒、CORS或html头请
它与沙盒、CORS或html头请求有关吗?嗨,我最终通过这种方式解决了这个问题: 客户端,在angularJS中,我将其放在我的路由配置中,以应用所有RESTAPI请求
$httpProvider.defaults.withCredentials = true;
我想我应该主要使用.htaccess for web服务器:
Header add Access-Control-Allow-Credentials "true"
但为了引起您的注意,我最终将整个.htaccess文件更新为以下内容:
Header add Access-Control-Allow-Origin "http://localhost:3000"
Header add Access-Control-Allow-Credentials "true"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "GET, POST"
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
<FilesMatch "\.php$">
Order Allow,Deny
Deny from all
</FilesMatch>
<FilesMatch "index[0-9]?\.php$">
Order Allow,Deny
Allow from all
</FilesMatch>
标题添加访问控制允许来源”http://localhost:3000"
标头添加访问控制允许凭据“true”
标题添加访问控制允许标题“来源,x请求,内容类型”
标题添加访问控制允许方法“GET,POST”
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[QSA,L]
命令允许,拒绝
全盘否定
命令允许,拒绝
通融
在php中,我还使用以下JSON响应:
$response=“所需的JSON响应对象”;
$status='OK或未经验证或…';
$status='200或403或…';
标题(“内容类型:application/json”);
标题(“HTTP/1.1$status$status_message”);
echo json_编码($response);
退出()
希望这个问题和答案能帮助您它与访问控制相关吗