我做了一個使用Angular.js的常規應用程序,用戶登錄後,如果在瀏覽器中刷新,標誌信息消失,登錄狀態爲重置,我必須再次登錄,如何保持登錄狀態事件在瀏覽器中刷新?如何使用Angular.js刷新後保持登錄狀態
感謝您的幫助
我做了一個使用Angular.js的常規應用程序,用戶登錄後,如果在瀏覽器中刷新,標誌信息消失,登錄狀態爲重置,我必須再次登錄,如何保持登錄狀態事件在瀏覽器中刷新?如何使用Angular.js刷新後保持登錄狀態
感謝您的幫助
您可以使用AngularJS服務$cookieStore。
但是在AngularJS 1.0.7中,您無法設置路徑或Cookie持續時間,因此您需要實施自己的服務。
一些額外提示:
- 用於AngularJS 1.0.7-你需要從here
- 你需要注入服務$的CookieStore在控制器/服務
下載庫 - 你應該創建一個全球服務,檢查/設置/刪除會話cookie
使用服務的一些起點示例:
app.service('global', function($cookieStore, $location, $filter) {
var globalService = {};
globalService.user = null;
globalService.isAuth = function(){
if (globalService.user == null) {
globalService.user = $cookieStore.get('user');
}
return (globalService.user != null);
};
globalService.setUser = function(newUser) {
globalService.user = newUser;
if (globalService.user == null) $cookieStore.remove('user');
else $cookieStore.put('user', globalService.user);
};
globalService.getUser = function() {
return globalService.user;
};
return globalService;
});
在您登錄後調用setUser以在cookie中保存用戶(可能是服務器返回的某個令牌)。 然後,您應該爲需要登錄用戶的每個請求發送驗證令牌數據。
令牌可以是PHP會話(如果使用PHP)並且會話可以在服務器上恢復。
感謝Kcsoft,請給出一段代碼?目前,我將登錄的用戶信息保存在$ rootScope中。在瀏覽器中刷新時是否重置了$ rootScope? –
用一個例子做了一些編輯。 – kcsoft
將會話票保存在cookie中? –