我是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避免这种情况?
答案 0 :(得分:1)
如下所示,在您的登录方法中将logged_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中的其他变量,并在注销方法中将其设置为空白。