我创建了基于令牌的授权。登录后,它将令牌存储在 localStorage 中,但我意识到 localStorage 是同步的,这不是我在单页应用程序中想要的。所以我研究了Angular Local Forage,正如他们所说的那样是异步的。
首先我下载 localForage 和 angularLocalForage 并将其添加到索引中
<script src="public/scripts/angular/localforage.js"></script>
<script src="public/scripts/angular/angular-localForage.js"></script>
接下来,我在 app.js 中添加模块
'LocalForageModule'
在 loginService 中成功调用时,我添加了以下几行:
$localForage.set('authorization', {
token: response.data.data.attributes.token,
nick: 'other values..if neccessary'
});
在包装整个页面的外部控制器中,我添加了$localForageget 方法:
'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 (