我想在这里完成两件事情:AngularJS /网络API 2令牌Authenticaion
1)通过在从登录屏幕getToken.getToken(),后者又调用getTokenFromServer.getToken用户名和密码,设置令牌给返回的令牌值。
2)每次从Angular控制器调用getToken.getToken,但这次只是返回我假设已经检索到的令牌存储在getToken工厂中,因为它是单例?
我在AngularJS/Web API 2身份验证的正确轨道上吗?
我知道getTokenFromServer.getToken的作品,如果给定的用户名和密码,它会返回一个有效的标记。但是我不确定在保存一个令牌用于后续调用需要令牌的控制器方面从那里做了什么。感谢您的帮助。
securityApp.factory("getToken", function (getTokenFromServer) {
function getToken(userName, password) {
var token;
if (!!token) {
getTokenFromServer.getToken(username, password).then(function (data) {
token = data;
});
};
return token;
}
});
securityApp.factory("getTokenFromServer", function ($http, $q) {
function getToken(userName, password) {
return $http({
method: 'POST', url: '/token', data: { username: userName, password: password, grant_type: 'password' }, transformRequest: function (obj) {
var str = [];
for (var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
}
})
.then(function (result) {
return result.data.access_token;
}, function (errorResponse) {
return $q.reject(errorResponse.data);
});
}
return {
getToken: getToken
};
});
将标记保存在cookie中,并将其放置在后续服务器调用的标题中。 – 2014-10-02 05:25:38