我正在尝试创建一个后端和前端分开的Web应用程序,因此这里有两个项目。原因是未来有一个计划来创建移动版本,所以我把它解耦了。
仅供参考,后面是使用laravel4和barryvdh CORS使用PHP创建的
并且前端完全由angularjs和bootstrap创建。
目前的情况是我在我的后端应用程序中创建一个休息API来进行登录,身份验证和注销。
在前端我有2个页面,即登录页面和索引页面。
登录页面由用户名,密码输入字段和提交按钮组成,
当用户点击提交按钮时,它将从后端调用登录休息API,我希望如果登录成功,它会将cookie保留到前端页面,但它没有(因为交叉原始策略,我研究为许多)。
问题是,现在有没有办法在跨域设置会话,现在是2014年,我发现的任何文章都是从2012年开始的。如果不可能,除了OAUTH2和openID之外,最简单的方法是跨域保持会话(因为他们的学习曲线太陡了,我正在创建的应用程序只是小应用程序)
谢谢你的帮助。
答案 0 :(得分:1)
例如......
domain1.com有webserver1 domain2.com有webserver2 passport.com有webserver3
每当我连接到domain1.com或domain2.com时,我都会在guard.com/check.php上的脚本索引的最顶部包含一行,是否已经以“”的名称初始化了一个浏览器会话PASSPORT“,如果是这样,我完成了passport.com上的检查,并让domain1.com或domain2.com上的脚本完成他们的工作。
如果浏览器会话未初始化,check.php会将索引通过header()重定向到login.php页面。这将针对LDAP进行验证,如果绑定用户是正常的,则浏览器会话初始化为“PASSPORT”,并包括我需要的所有字段以验证用户及其访问。一旦完成就重新回到索引。
当用户从domain1.com转到domain2.com(或其他方式)时,每个索引顶部的脚本将一直检查会话,将用户带到登录脚本或让他访问所需的网站。
作为附加检查,您可以创建会话并添加诸如“有效直到”,“访问级别”等变量。
希望这会有所帮助,如果您需要进一步澄清,请告诉我。
最佳, 埃米利亚诺。