我正在尝试使用angularjs和nodejs

时间:2020-02-02 12:04:28

标签: node.js angularjs

.service

function Service($http,localStorageService,Data) {
    var service = {};
    service.Login = Login;
    return service;

    function Login(username, data, callback) {
        Data.post("admins/login/"+username, data).then(function(response){
            if (response._token) {
               localStorageService.set('user',response._userEmail);
               localStorageService.set('token',response._token);

                // add jwt token to auth header for all requests made by the $http service
                $http.defaults.headers.common.Authorization = 'Bearer ' + response._token;

                // execute callback with true to indicate successful login
                callback(true);
            } else {
                // execute callback with false to indicate failed login
                callback(false);
            }
        });               
    }
}

.run

function run($rootScope, $http, $location, localStorageService) {
    // keep user logged in after page refresh
    if (localStorageService.get("user")) {
         $http.defaults.headers.common.Authorization = 'Bearer ' + localStorageService.get('token');
    }
    // redirect to login page if not logged in and trying to access a restricted page
    $rootScope.$on('$locationChangeStart', function (event, next, current) {
        var publicPages = ['/login'];
        var restrictedPage = publicPages.indexOf($location.path()) === -1;
        if (restrictedPage && !localStorageService.get("user")) {
            $location.path('/login');
        }
    });
}

api运行良好,我能够验证登录名。一旦我将用户存储在本地存储中并重定向到仪表板,就会出现错误

获取http://localhost:3001/app/dashboard/dashboard.html net :: ERR_CONNECTION_RESET 400(错误请求)

但是在我注释/删除代码后:
$http.defaults.headers.common.Authorization = 'Bearer ' + localStorageService.get('token');
错误消失,它成功重定向到仪表板,但是jwt的全部功能无法正常工作。error screenshot

0 个答案:

没有答案
相关问题