2016-12-01 1 views
0

я создаю маркер во время входа с Node.js:Как потреблять маркер узел апи, основанный в угловой JS

apiRoutes.put('/login', function(req, res, next){ 
    User.findOne({email:req.body.email}, function(err, user){ 
    bcrypt.compare(req.body.password, user.password, function(err, result){ 
     if(result){ 
     var token=jwt.encode(user,config.secret); 
     return res.json({success: true, token:'JWT' +token});   
     }else{ 
     return res.json("Incorrect Email and Password") 
     } 
    }) 
    }) 
}); 

теперь я пытаюсь показать страницу приборной панели пользователя с /dashboard маршрутом и я делаю что-то как показано ниже:

apiRoutes.get('/dashboard',function(req, res) { 
    var token=getToken(req.headers); 
    if(token){ 
    var decode=jwt.decode(token, config.secret); 
    console.log(decode); 
    User.findOne({name:decode.name}, function(err, user){ 
     if(err){res.json(err)} 
     if(!user){ 
      return res.status(403).send({success:false, msg:'Authentication Failed'}) 
     }else{ 
      res.json({success:true, msg:'Welcome in the Area  ' +user.name+'!' }) 
     } 
    }) 
    }else{ 
    return res.status(403).send({success:false, msg:'No Token Found'}) 
    } 
    }); 

getToken = function (head) { 
    if (head && head.authorization) { 
    var parted = head.authorization.split(' '); 
    if (parted.length == 2) { 
     return parted[1]; 
    } else { 
     return null; 
    } 
    } else { 
    return null; 
    } 
}; 

В postman когда я ударил /dashboard апи его работает хорошо. и печать вывода success:true, msg:'Welcome in the Area Admin; Но когда в угловых js я потребляю этот api, тогда вывод в консоли узла null. Ниже моя угловая функция потреблять Api

app.controller('dashboardCtrl', function($scope, $http, $location, $routeParams){ 
     $http.get('/api/dashboard').success(function(res){ 
      $scope.result=res; 
     }) 
    }) 

Я хочу знать, как использовать маршрут маркер, основанный на угловой. Я знаю, что приведенная выше угловая функция неверна. Пожалуйста, дайте мне знать правильный код.

Благодаря

ответ

1

вы не установили для заголовка $http.get(). Вот как вы должны сделать:

$http.get('/api/dashboard', { 
    headers: { 
    // Set header for the request here 
    authorization: token 
    } 
}) 
.success(function(res) { 
    // Success 
}); 
+0

маркер не определен –

+0

Нет, 'token' от ответа от вашего' $ http.put ('/ API/входа в систему') '. Я просто отвлек эту часть, потому что предположил, что вы уже это сделали, и сохраните ответ в переменной «токен». – willie17

+0

да я ... Вроде как $ scope.login = функция() { \t \t $ http.put ('/ апи/Войти', $ scope.new) .then (функция (ответ) { \t \t \t $ cookieStore.put ('маркер', response.data.token); \t \t \t $ cookieStore.put ('CurrentUser', $ scope.new.email); \t \t \t $ rootScope.token = ответ. data.token; \t \t \t $ rootScope.currentUser = $ scope.new.email; \t $ location.p ATH ('/ приборной панели'); \t $ scope.loggindata = response; \t \t}, функция (заблуждение) { \t \t предупреждение ('Неправильный адрес электронной почты и пароль'); \t \t}); \t} –