【发布时间】:2014-04-29 13:48:01
【问题描述】:
我使用以下代码从客户端 API 获取我的 AngularJS 应用程序令牌,然后将此令牌保存在每 30 分钟到期的 cookie 中。我已经添加了代码来首先检查 cookie 如果它没有过期,那么我可以使用 cookie 中的令牌,如果过期,那么我将从服务器请求一个新的令牌。
我现在面临的问题是 getToken 必须返回一个 Promise,如果我使用 $http 调用 API,这很容易,但想知道如何在检查 cookie 后返回一个 Promise 并从 cookie 中返回令牌而不调用 API?任何例子都受到高度赞赏。谢谢
getToken : function(){
var token = '';
var deferred = $q.defer();
var urlString = 'http://domainname.com/client.php';
//returns '' if cookie expired or token if cookie exist...
token = LocalService.getTokenCookie();
if(token == ''){
$http({ method:'POST',
url: urlString,
headers: { 'content-type' : 'application/x-www-form-urlencoded; charset=UTF-8'
},
responseType: 'json'
}).success(function(data,status,headers,config){
deferred.resolve(data);
token = data.Token;
//....save token in a cookie...
}).error(function(data,status,headers,config){
deferred.reject(status);
});
}
return deferred.promise;
}
【问题讨论】:
标签: javascript angularjs