如何让浏览器在标头中设置Oauth2 Bearer访问令牌?

时间:2017-09-14 21:39:33

标签: javascript java spring-oauth2

我需要帮助。 我的Spring Oauth2安全配置仅适用于RestAPI,但不适用于加载事件的浏览器资源。

我在服务器上有两种类型的资源:开放和安全。打开文件夹中的所有内容都不需要身份验证,安全文件夹中的每个文件都需要身份验证。

---- open(home.html,HomeController.js,...) ---- secure(secure.html,secure.js,...)

home.html及其控制器中的

我有登录密码表单,我调用我的httpService来验证并在cookie中保存令牌:

 $("#totaldays").on("change", function(){$("#mytextfield").trigger("change")})

的HTTPService

(function(angular) {
    var HomeController = function($scope, $rootScope, AppConstants, SharingService, httpService, $httpParamSerializer, $http, $state, DependencyLoaderService) {

        $scope.data = {username:'', password:''};

        $scope.doAdminLogin = function() {

            httpService.login($scope.data, function(response){
                if (response.data && response.data.error)
                    alert(response.data.error_description);
            });
        }

        $scope.securedPage = function() {
            $state.go('secured');
        }

        $scope.securedApi = function() {

            var url = '/api/superadmin/getAdminProfileList';
            httpService.get(url, null, false, function(response){
                $scope.securedApiResponse = JSON.stringify(response);
            }, function(response){
                $scope.securedApiResponse = JSON.stringify(response);
            });
        }

    };
    HomeController.$inject = [ '$scope', '$rootScope', 'AppConstants', 'SharingService', 'httpService', '$httpParamSerializer', '$http', '$state', 'DependencyLoaderService'];
    angular.module('todoapp.controllers').controller('HomeController', HomeController);
}(angular));

因此httpService可以拦截并从cookie中添加一个标题('Authorization:Bearer token')来获取,发布等API调用。如何让浏览器在所有导航或其他资源加载事件(如CSS,JS,HTML文件)上执行相同操作?

或者如何将默认的Spring Oauth2配置更改为不需要此标头,但是从cookie获取令牌?

0 个答案:

没有答案