i'am using satellizer authenticate app backend using nodejs, every http request doesn't attact req.headers.authorization, , don't know why, please me fix this, tks in advance
app.js
angular.module('userapp', ['angular-ladda','mgcrea.ngstrap', 'ui.router', 'satellizer', 'angular-loading-bar']) .config(function($httpprovider, $stateprovider, $urlrouterprovider, $authprovider, $locationprovider) { $stateprovider .state('/home', { url: '/', templateurl: 'app/views/pages/home.html' }) .state('/login', { url: '/login', templateurl: 'app/views/pages/login.html', controller: 'loginctrl', controlleras: 'login' }) .state('/signup', { url: '/signup', templateurl: 'app/views/pages/signup.html', controller: 'signupctrl', controlleras: 'signup' }) .state('users', { url: '/users', templateurl: 'app/views/pages/user/all.html', controller: 'userctrl', controlleras: 'user', resolve: { authenticated: function($q, $location, $auth) { var deferred = $q.defer(); if (!$auth.isauthenticated()) { $location.path('/login'); } else { deferred.resolve(); } return deferred.promise; } } }); $authprovider.facebook({ clientid: 'xxxxxxxxxxx' }); $urlrouterprovider.otherwise('/'); $locationprovider.html5mode(true); }); usercontroller.js
angular.module('userapp') .controller('userctrl', function(user, $alert) { vm = this; vm.getalluser = function() { vm.processing = true; user.all() .success(function(data) { vm.processing = true; vm.users = data; }) .error(function(error) { $alert({ content: error.message, animation: 'fadezoomfadedown', type: 'material', duration: 3 }); }); }; vm.getalluser(); }); userservice.js
angular.module('userapp') .factory('user', function($http) { return{ all: function() { return $http.get('/api/all'); } }; }); function checking authentication before calling restfull api
function ensureauthenticated(req, res, next) { if (!req.headers.authorization) { return res.status(401).send({ message: 'please make sure request has authorization header' }); } var token = req.headers.authorization; var payload = null; try { payload = jwt.decode(token, config.token_secret); } catch(err) { return res.status(401).send({ message: err.message }); } req.user = payload.sub; next(); }
api
apirouter.get('/all', ensureauthenticated, function(req, res) { user.find({}, function(err, users) { res.send(users); }); });
Comments
Post a Comment