我創建了基於令牌的授權。登錄後,它將令牌存儲在localStorage中,但我意識到localStorage是同步的,這不是我想要的單頁面應用程序。所以我看着Angular Local Forage,他們說這是異步的。設置AngularLocalForage成功登錄電話
首先我下載localForage和angularLocalForage和指數增加它
<script src="public/scripts/angular/localforage.js"></script>
<script src="public/scripts/angular/angular-localForage.js"></script>
接下來,我加入app.js模塊
'LocalForageModule'
在login服務的成功調用我添加以下行:
$localForage.set('authorization', {
token: response.data.data.attributes.token,
nick: 'other values..if neccessary'
});
並在我的外部控制器,它包裹整個頁面我加$localForage
get方法:
'use strict';
app.controller('ExternalCtrl', ['$scope', '$localForage',
function($scope, $localForage) {
$scope.authentication = {};
$scope.authentication = {
isAuth: false
};
var authData = $localForage.get('authorization');
if(authData) {
$scope.authentication.isAuth = true;
console.log($scope.authentication.isAuth);
}
}
]);
不幸的是,這並不工作,使所有網頁顯示不出來它會導致這個錯誤:
TypeError: $localForage.get is not a function at new (ExternalCtrl.js:11) at Object.invoke (
您的解決方案是工作,但我仍然需要登錄後刷新頁面,logouting看到的變化,爲什麼後? – BT101
只有在登錄服務存儲了數據後,您才需要重定向到記錄的頁面 – Fetrarij
但是在我的主頁上,我爲記錄的人員提供了不同的東西,並且沒有根據'$ scope.authentication.isAuth = true;'進行登錄,並且當我通過有效的登錄名和密碼我仍然需要刷新頁面才能看到登錄用戶的內容,我該如何更改它? – BT101