页面刷新消除了Angularjs $ scope变量

问题描述 投票:1回答:1

我是Angularjs的新手,我试图通过我的Angularjs应用程序实现Facebook登录。我成功地实现了它。 :)

我正在做的是,如果登录成功,我将变量logged设置为true。

//loading the file
$scope.logged = false;

Facebook.getLoginStatus(function(response) {
     if (response.status == 'connected') {
        $scope.logged = true;
        //do some stuff
     }
     else
       $scope.login();
     });

但我的问题是,如果用户刷新页面,$scope.logged变量再次变为false,并要求用户重新登录。

我正在使用REST API(Rails)作为后端

如何使用Angular避免这种情况?

angularjs session page-refresh
1个回答
1
投票

在身份验证后,将login_in = true放入登录方法中的cookieStore,如下所示。

$cookieStore.put('logged_in',true);
$rootScope.logged_in = true;

在你的控制器中,做

$rootScope.logged_in = $cookieStore.get('logged_in');

现在,您可以在UI中的任何位置使用此logged_in变量来检查用户是否已登录。确保在应用程序中使用“ngCookies”模块。并将$ cookieStore依赖项传递给您的控制器。您甚至可以将用户对象本身保持为与cookie中的logged_in变量类似,并从cookie中检索它。确保执行logged_in = false并清除cookie中的其他变量,并在注销方法中将其设置为空白。

© www.soinside.com 2019 - 2024. All rights reserved.