我正在尝试在我的angularjs应用程序中实现基于JWT的身份验证。但我正在努力解决请求标头问题。问题是我有一个调用服务的Controller,这个会返回一个令牌。这一步很好。
Producer: GPL Ghostscript 9.18
CreationDate: 10/31/16 21:29:18
ModDate: 10/31/16 21:29:18
Tagged: no
Form: none
Pages: 1
Encrypted: no
Page size: 612 x 555 pts (rotated 0 degrees)
File size: 2373 bytes
Optimized: no
PDF version: 1.4.
但问题是我想在登录后将用户重定向到“secure / index”并在请求中使用“Authentication”标头,因为我有一个Spring过滤器检查所有“* / secure”路径是否有该标头
主app.js是以下
'use strict';
angular.module("home.controllers", ['home.services', 'ngStorage'])
.controller('HomeController', ['$scope', '$location', '$http', '$localStorage', 'HomeService',
function($scope, $location, $http, $localStorage, HomeService) {
function login(user, password) {
HomeService.login(user, password).then(
function(loginResult) {
var token = loginResult.token;
if (loged()) {
$localStorage.token = token;
$http.defaults.headers.common.Authorization = 'Bearer ' + token;
console.log($location.path('secure/index'));
$location.path('secure/index');
}
},
function(err) {
console.error(err);
}
);
}
function loged() {
return $scope.token !== null;
}
return {
loged: function() {
return loged();
},
login: function(user, password)) {
return login(user, password)
}
};
}]);
问题是它没有重定向页面。而不是$ location我尝试使用$ window.href并且它成功地重定向页面但在请求中没有auth头。
有任何想法/建议吗?请注意,我是Angularjs中的一名先生,所以可能有更多错误。
提前致谢
答案 0 :(得分:1)
看起来,一旦您拥有了令牌,就会使用secure/index
重定向到$location.path('secure/index');
。但是,您拥有的示例代码未显示映射到secure/index
的状态。