【问题标题】:Angular App in CORS Losing SessionCORS 失败会话中的 Angular 应用程序
【发布时间】:2014-08-28 15:58:04
【问题描述】:

我有两个域:

  • http://localhost:9000 / 我用 Yeoman 创建的 AngularJS 应用程序
  • http://localhost/ 我用 CodeIgniter 创建的 PHP 应用

我的 Angular 应用程序执行 $http.post 以在 PHP 应用程序中进行身份验证并保存会话以将用户识别为已登录,但是,当我尝试恢复存储在 CI 会话中的用户信息时,它就不存在了。

我怎样才能让 AngularJS 应用程序访问会话而不丢失?

【问题讨论】:

    标签: php angularjs codeigniter session


    【解决方案1】:

    假设你的 PHP 应用配置为支持 CORS,那么 Angular $httpProvider 需要配置如下...

    $httpProvider.defaults.useXDomain = true;
    

    然后要允许设置响应 cookie,withCredentials 必须为真...

    $http.post(url, {withCredentials: true, ...})
    

    最后,您可能需要调整 cookie 域和路径,以便跨 TLD 的子域访问。例如,如果您的 CORS 服务器位于 api.foo.com,那么它可能会默认在 api.foo.com 上设置 cookie,并且您在 awesome-app.foo.com 上的客户端应用程序将被拒绝访问这些 cookie。当然,出于安全原因,您不希望您的客户端应用读取 API 的会话 cookie。

    希望这会有所帮助。祝你好运。

    【讨论】:

      猜你喜欢
      • 2019-09-26
      • 1970-01-01
      • 2017-02-15
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 2018-03-03
      相关资源
      最近更新 更多