我是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避免这种情况?
在身份验证后,将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中的其他变量,并在注销方法中将其设置为空白。