Advertisement
Guest User

Untitled

a guest
Jun 30th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. angular.module('continental', [
  2. 'ngRoute',
  3. 'satellizer'
  4. ])
  5. .config(function($httpProvider, $authProvider) {
  6. $authProvider.loginUrl = "loginLdapToken";
  7. $authProvider.httpInterceptor = true;
  8. $authProvider.tokenName = "superTok";
  9. $authProvider.tokenPrefix = "testMean";
  10.  
  11. $httpProvider.interceptors.push(['$q', function($q) {
  12. var tokenName = $authProvider.tokenPrefix ? $authProvider.tokenPrefix + '_' + $authProvider.tokenName : $authProvider.tokenName;
  13. return {
  14. request: function(httpConfig) {
  15. var token = localStorage.getItem(tokenName);
  16. if (token && $authProvider.httpInterceptor) {
  17. token = $authProvider.authHeader === 'Authorization' ? 'Bearer ' + token : token;
  18. httpConfig.headers[$authProvider.authHeader] = token;
  19. //httpConfig.headers.Authorization = token;
  20. console.log(httpConfig.headers);
  21. }
  22. return httpConfig;
  23. },
  24. responseError: function(response) {
  25. return $q.reject(response);
  26. }
  27. };
  28. }]);
  29. });
  30.  
  31. vm.loginLdapToken = function(){
  32. var data = {'username': vm.inputUser, 'password': vm.inputPass};
  33. $auth.login({
  34. username: data.username,
  35. password: data.password
  36. })
  37. .then(function(data){
  38. vm.userData = data.data;
  39. $window.localStorage.setItem('testMean_superTok', vm.userData.token);
  40. })
  41. .catch(function(response){
  42. console.log("Error en login");
  43. });
  44. }
  45.  
  46. router.post('/loginLdapToken', function(req, res, next){
  47. passport.authenticate('ldapauth', function(err, user, info){
  48. if (err){
  49. return res.send(err);
  50. }
  51. if (!user){
  52. return res.send({ success : false, message : 'authentication failed', info});
  53. }
  54. var token = jwt.createToken_v2(user.dn); //the token generating method is inside another file
  55. req.headers.authorization = "Bearer "+ token; //the header i tried to manually add
  56. return res.send({
  57. success : true,
  58. message : 'authentication succeeded',
  59. userData : user,
  60. token: token});
  61. })(req, res, next);
  62. });
  63.  
  64. //This is the "private" resource
  65. router.get('/test_entro', jwt.ensureAuthenticated, function(req, res, next) {
  66. //console.log(req.headers); //the "authorization" header is not set here
  67. res.render('test_entro');
  68. });
  69.  
  70. var createToken_v2 = function(userDN){
  71. var now = new Date();
  72. var user = {
  73. 'sub': userDN,
  74. 'iat': Math.floor(now.getTime() / 1000),
  75. 'exp': Math.floor((now.getTime() / 1000) + (1*60))
  76. }
  77. return jwt.sign(user, SECRET);
  78. }
  79.  
  80. var ensureAuthenticated = function(req, res, next){
  81. console.log(req.headers);
  82. if(!req.headers.authorization) {
  83. return res
  84. .status(403)
  85. .send({message: "Tu petición no tiene cabecera de autorización"});
  86. }
  87.  
  88. var token = req.headers.authorization.split(" ")[1];
  89. var payload = jwt.verify(token, SECRET);
  90.  
  91. if(payload.exp <= moment().unix()) {
  92. return res
  93. .status(401)
  94. .send({message: "El token ha expirado"});
  95. }
  96.  
  97. req.user = payload.sub;
  98. next();
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement