Laravel + AngularJS存储用于发布请求的会话的最佳实践

时间:2017-03-16 07:39:36

标签: php angularjs laravel session cookies

我正在开发一个Laravel + AngularJS应用程序,对于这种设置还是一个新手。我想知道存储会话的最佳做法是什么,例如用户ID,电子邮件,姓名等将传递给表单或ajax调用。

通常情况下,在PHP / Laravel中,可以使用$_SESSION['userId']$this->session()->set('userId', $userId);存储它,只需在PHP后端获取它,以便在发出请求时作为参数传递。

但是Laravel + AngularJS设置的最佳方式是什么?

缓存? localStorage的?

我删除了Cookie,因为它无法处理很多信息。至于本地存储,我发现它在客户端太暴露,因为当你检查它时很容易看到它。

还有其他建议吗?

3 个答案:

答案 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也是适当的方法。