我很难理解如何使用API处理基本身份验证。
基本上我需要做的是从API发送模块用户名和模块密码(不是用户登录)请求令牌。服务器应该返回一个令牌,我需要将该令牌用于我将对服务器发出的所有其他请求。
在互联网上看,我找到了涉及用户登录和角度路由的解决方案。 我没有使用任何路由,路由是托管服务器端,我需要在几个页面上使用API,然后消费我需要将令牌附加到每个请求。
我不明白如何正确启动。
我应该为第一次身份验证创建一个ajax请求,将令牌保存在某处并将其用于所有其他请求。请记住,如果令牌无效,我应该再次请求。
我对如何做到这一点很困惑,我找不到任何好的教程。
任何帮助?
答案 0 :(得分:1)
我自己还在学习Angular,但希望这个基本的例子可以帮到你。您可以使用$cookies来保存和检索从服务器发回的令牌。然后,假设您使用$ http或$ resource,您可以使用$httpProvider拦截器将当前令牌值(从$ cookies中检索)添加到您的应用程序发出的每个传出请求的标头中。
这是一个如何创建$ httpProvider拦截器的简单示例:
authServices.factory('sendTokenInHeader', ['$cookies', function($cookies) {
return {
request: function(config) {
var token = $cookies.getObject('x-my-token');
if(token) {
var updateHeaders = config.headers || {};
updateHeaders['x-my-token'] = token;
config.headers = updateHeaders;
}
return config;
}
};
}]);
然后在你的app.config中你需要推送这个拦截器,现在任何传出的$ http / $资源请求都将包含当前的令牌!
myApp.config(['$httpProvider', function($httpProvider) {
// do other stuff...
$httpProvider.interceptors.push('sendTokenInHeaders');
}]);