我想登录使用Laravel5编写的RESTful后端服务器,单页前端应用程序利用Polymer的自定义元素。
在此系统中,持久性(CRUD)层存在于服务器中。因此,应该在服务器上进行身份验证以响应客户端的api请求。当请求有效时,服务器返回JSON格式的User对象,包括用户在客户端的访问控制角色。
在这里,我的问题是如何保持会话,即使用户刷新前端页面也是如此?谢谢。
答案 0 :(得分:1)
这是Polymer之外的问题,甚至只是单页应用。问题是如何在浏览器中保留会话信息。使用SPA更简单,因为您可以在内存中保留身份验证令牌,但传统的Web应用程序从一开始就遇到了这个问题。
您需要做两件事:
有几种方法可以进行客户端存储。到目前为止最常见的是cookie。由于浏览器存储它们而不是你太努力,并且只要你访问cookie注册的域就会显示它们,这很容易做到。许多客户端和服务器端auth库都是围绕它们构建的。
另一种方法是html5本地存储。根据您的目标浏览器和支持,您可以考虑使用它。
还有一些方法可以使用URL参数,但是当有人切换页面时你会冒失去它的风险。它可以工作,但我倾向于避免这种情况。
我没有看到任何直接处理cookie的组件,但它不应该太难建立。
以下是我用于最近的应用程序的cookie管理代码的要点。随意包装它以构建用于cookie管理的Web组件..只要您共享相同的内容!
https://gist.github.com/deitch/dea1a3a752d54dc0d00a
更新:
component.kitchen在这里有一个存储组件http://component.kitchen/components/TylerGarlick/core-resource-storage
答案 1 :(得分:0)
如果使用PHP,最简单的方法是将用户保持在PHP会话中(就像普通的非SPA应用程序一样)。 PHP将在服务器上存储用户信息,并自动生成浏览器将随任何请求发送的cookie。对于没有负载平衡的单个服务器,会话数据是本地的,非常快。