我正在开发一个Laravel + AngularJS应用程序,对于这种设置还是一个新手。我想知道存储会话的最佳做法是什么,例如用户ID,电子邮件,姓名等将传递给表单或ajax调用。
通常情况下,在PHP / Laravel中,可以使用$_SESSION['userId']
或$this->session()->set('userId', $userId);
存储它,只需在PHP后端获取它,以便在发出请求时作为参数传递。
但是Laravel + AngularJS设置的最佳方式是什么?
缓存? localStorage的?
我删除了Cookie,因为它无法处理很多信息。至于本地存储,我发现它在客户端太暴露,因为当你检查它时很容易看到它。
还有其他建议吗?
答案 0 :(得分:1)
考虑到您制作单页应用,您可以使用 Cookie 或 localstorage 或 sessionStorage
只要用户不删除信息,localStorage 就会存储信息。
只要会话进行,sessionStorage 就会存储信息。通常直到用户关闭标签/浏览器。
cookies 只是cookie,旧版浏览器支持这些cookie,通常是使用上述WebStorages的框架的后备。 cookies可以存储更少,并要求您通知用户。
因此,最佳做法是使用 localStorage ,因为 sessionStorage 是基于标签的
答案 1 :(得分:0)
LocalStorage会更有效率,主要是因为您的应用程序没有耦合。使用登录时,您将从Laravel返回所有数据并使用angular在本地存储它们。当他们注销时,您清除本地存储。
答案 2 :(得分:0)
如果您的应用程序是SPA (Single Page Application
),请从BE检索令牌并将其存储在浏览器的Localstorage
上。这样您就可以使用该令牌发出请求以从BE Api获取用户数据。
在SPA's
中,建议不要将会话存储在BE上。
但是如果你的应用程序很大程度上取决于BE而且行为不像SPA's
那么使用cookies
也是适当的方法。