Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- angular.module('continental', [
- 'ngRoute',
- 'satellizer'
- ])
- .config(function($httpProvider, $authProvider) {
- $authProvider.loginUrl = "loginLdapToken";
- $authProvider.httpInterceptor = true;
- $authProvider.tokenName = "superTok";
- $authProvider.tokenPrefix = "testMean";
- $httpProvider.interceptors.push(['$q', function($q) {
- var tokenName = $authProvider.tokenPrefix ? $authProvider.tokenPrefix + '_' + $authProvider.tokenName : $authProvider.tokenName;
- return {
- request: function(httpConfig) {
- var token = localStorage.getItem(tokenName);
- if (token && $authProvider.httpInterceptor) {
- token = $authProvider.authHeader === 'Authorization' ? 'Bearer ' + token : token;
- httpConfig.headers[$authProvider.authHeader] = token;
- //httpConfig.headers.Authorization = token;
- console.log(httpConfig.headers);
- }
- return httpConfig;
- },
- responseError: function(response) {
- return $q.reject(response);
- }
- };
- }]);
- });
- vm.loginLdapToken = function(){
- var data = {'username': vm.inputUser, 'password': vm.inputPass};
- $auth.login({
- username: data.username,
- password: data.password
- })
- .then(function(data){
- vm.userData = data.data;
- $window.localStorage.setItem('testMean_superTok', vm.userData.token);
- })
- .catch(function(response){
- console.log("Error en login");
- });
- }
- router.post('/loginLdapToken', function(req, res, next){
- passport.authenticate('ldapauth', function(err, user, info){
- if (err){
- return res.send(err);
- }
- if (!user){
- return res.send({ success : false, message : 'authentication failed', info});
- }
- var token = jwt.createToken_v2(user.dn); //the token generating method is inside another file
- req.headers.authorization = "Bearer "+ token; //the header i tried to manually add
- return res.send({
- success : true,
- message : 'authentication succeeded',
- userData : user,
- token: token});
- })(req, res, next);
- });
- //This is the "private" resource
- router.get('/test_entro', jwt.ensureAuthenticated, function(req, res, next) {
- //console.log(req.headers); //the "authorization" header is not set here
- res.render('test_entro');
- });
- var createToken_v2 = function(userDN){
- var now = new Date();
- var user = {
- 'sub': userDN,
- 'iat': Math.floor(now.getTime() / 1000),
- 'exp': Math.floor((now.getTime() / 1000) + (1*60))
- }
- return jwt.sign(user, SECRET);
- }
- var ensureAuthenticated = function(req, res, next){
- console.log(req.headers);
- if(!req.headers.authorization) {
- return res
- .status(403)
- .send({message: "Tu petición no tiene cabecera de autorización"});
- }
- var token = req.headers.authorization.split(" ")[1];
- var payload = jwt.verify(token, SECRET);
- if(payload.exp <= moment().unix()) {
- return res
- .status(401)
- .send({message: "El token ha expirado"});
- }
- req.user = payload.sub;
- next();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement