【问题标题】:Laravel angularjs cross origin sessionLaravel angularjs 跨域会话
【发布时间】:2014-10-19 16:12:04
【问题描述】:

我在 angular 和 laravel 之间的通信有问题。

它是关于需要登录到 laravel 框架并获取一些数据的移动应用程序。

移动应用程序是基于 angularjs 的,并且用于登录 i 用户标准 $httpd 函数。

登录工作正常,我得到了来自 laravel 的预期响应,但是当我假设我登录了另一个请求时,laravel 为会话和身份验证返回 NULL。当我将移动应用程序上传到安装了 laravel 的服务器时,一切都像魅力一样。但是我的应用需要在移动设备上,所以这不是一个解决方案。

我认为问题出在 cors 或跨域通信中。似乎 laravel 破坏了由跨源请求创建的会话,因为该会话无法从另一个请求访问,并且在另一个请求中 laravel 尝试创建一个新的。

我需要帮助解决该会话问题(登录后访问会话或保持会话),我希望你们中的一些人有某种解决方案。

我试过了:

  • 在我的登录控制器中更改标题
  • 更改 get to post
  • 将内容类型添加到我的 Angular http req (Content-Type': 'application/x-www-form-urlencoded)
  • 尝试使用 jquery ajax 进行请求
  • 更改 laravel app/config/session.php 的驱动程序、cookie、域的值...
  • 将 vendor/laravel/framework/src/illuminate/http/frameGuard.php x-frame 选项设置为 false

不走运!

【问题讨论】:

    标签: angularjs session laravel laravel-4 cross-domain


    【解决方案1】:

    使用 json Web 令牌,并简单地设置它,以便您在登录时请求 JWT,并且您可以共享该令牌 - 它失效的唯一方法是,如果您丢失令牌,或者它超时。

    【讨论】:

    • 嗯,你能不能说得更具体一些,或者只是指出我正确的方向,我从未使用过网络令牌?从哪里开始?
    • 只要在谷歌上搜索 json 网络令牌,您就会获得大量关于它们是什么、它们的作用方式的文章和资源 - 然后您可以实现自己的以满足您的要求或找到适合您需求的图书馆。诚然,这是一种非常新颖的方法,您需要为您的应用程序启用 SSL,所以如果这不合适,最好还是坚持使用会话(尽管祝您好运!):)
    猜你喜欢
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2010-11-23
    • 1970-01-01
    • 2015-08-01
    • 2017-03-14
    • 2023-03-15
    相关资源
    最近更新 更多