Angular:跨控制器共享登录状态

时间:2015-02-06 02:23:46

标签: angularjs authentication mean

我有一个相当简单的角度应用程序(在MEAN堆栈上工作)没有使用ui-router(我现在想保持这种方式)。

我想知道分享用户的最佳方式是什么"登录"整个应用程序的状态是。

例如,我想要一个指示来显示"注册或登录"如果用户未登录,或者"您好,用户名"如果用户已登录。

在我的应用程序中,许多指令引用了登录状态,因此似乎使用多个控制器并在每个控件上声明登录的$scope属性并不是最好的选择。我怎么能做到这一点?

作为后续行动,有关了解用户是否登录的最佳方法的任何建议?现在我将它基于存储在本地存储中的auth-token,但它也可能是cookie。

我想知道一种最佳实践方式,我可以存储的不仅仅是用户的登录状态,还有他们的信息(名称,挑选的项目等)并保持同步到我的服务器(因此,如果他们登录另一台计算机,他们的购物车将继续存在。)

由于

1 个答案:

答案 0 :(得分:0)

写一项服务:

angular.module('myApp')
.service('Auth', function() {
    var loggedInState = {}; // log in state data

    var logIn = function() {
        // send log in request
    }

    return {
        state: loggedInState,
        logIn: logIn
    }
})

现在,您可以在任何想要知道的地方注入此服务,并检查状态

相关问题