Example #1
0
  setupPassport() {
    this.passport.serializeUser((user: any, done: Function) => {
      done(null, user);
    });

    this.passport.deserializeUser((id: any, done: Function) => {
      User.findById(id, (err: any, user: any) => {
        done(err, user);
      });
    });
  }
Example #2
0
  localSignin() {
    this.passport.use("local-signin", new passportLocal.Strategy({
      usernameField: "email",
      passwordField: "password",
      passReqToCallback: true
    }, (req: any, email: string, password: string, done: Function) => {
      process.nextTick(() => {
        User.findOne({ "local.email": email }, (err: any, user: any) => {
          if (err) {
            return done(err);
          }

          if (!user) {
            return done(null, false, req.flash("signin", "email|Couldn't find user"));
          }

          if (!user.verifyPassword(password)) {
            return done(null, false, req.flash("signin", "password|Invalid password"));
          }

          return done(null, user);
        });
      });
    }));
  }
Example #3
0
  localSignup() {
    this.passport.use("local-signup", new passportLocal.Strategy({
      usernameField: "email",
      passwordField: "password",
      passReqToCallback: true
    }, (req: any, email: string, password: string, done: Function) => {
      process.nextTick(() => {
        User.findOne( { "local.email": email }, (err: any, user: any) => {
          if (err) {
            return done(err);
          }

          if (user) {
            return done(null, false, req.flash("signup", "email|Email address already exists"));
          } else {
            let newUser = new User();
            newUser.local.email = email;
            newUser.local.password = newUser.generateHash(password);
            newUser.userImage = "http://localhost:3000/public/images/ninjaicon.png";

            newUser.save((saveErr: any) => {
              if (saveErr) {
                throw saveErr;
              }
              return done(null, newUser);
            });
          }
        });
      });
    }));
  }
Example #4
0
 deserializeUser(id, done) {
     this._passport.deserializeUser(function(id, done) {
         user.findById(id, function(err, user) {
             done(err, user);
         });
     });
 }
Example #5
0
  config(app: Application, passport: Passport){
    app.get("/", function(req: Request, res: Response){
      res.sendFile("index.html", {"root": "pages/"});
    });

    app.get("/ping", passport.authenticate("bearer", { session: false }), this.serialize, this.generateToken, function(req: Request, res: Response){
      res.status(200).json({hello: "world"});
    });

    app.get("/google", passport.authenticate("google", { session: false }), function(req: Request, res: Response){
      res.status(200).json({google: "success"});
    });

    // app.get("/login", function(req: Request, res: Response){
    //   res.sendFile("login.html", {"root": "pages/"});
    // });

    // app.get("/signup", function(req: Request, res: Response){
    //   res.sendFile("signup.html", {"root": "pages/"});
    // });

    // app.get("/finance", function(req: Request, res: Response){
    //   res.sendFile("finance.html", {"root": "pages/"});
    // });

    // app.post('/login', passport.authenticate('local-login', {
    //   successRedirect : '/finance', // redirect to the secure profile section
    //   failureRedirect : '/login', // redirect back to the signup page if there is an error
    //   failureFlash : true // allow flash messages
    // }));

    // // process the signup form
    // app.post('/signup', passport.authenticate('local-signup', {
    //   successRedirect : '/finance', // redirect to the secure profile section
    //   failureRedirect : '/signup', // redirect back to the signup page if there is an error
    //   failureFlash : true // allow flash messages
    // }));

    // // =====================================
    // // LOGOUT ==============================
    // // =====================================
    // app.get('/logout', function(req, res) {
    //   req.logout();
    //   res.redirect('/');
    // });
  }
Example #6
0
function setupPassport(passport:Passport) {
	
	passport.use(new FacebookStrategy({
	    clientID: providers['facebook'].clientID,
	    clientSecret: providers['facebook'].clientSecret,
	    callbackURL: providers['facebook'].callbackURL
	  },facebookLogin
	));
	
    passport.use(new GoogleStrategy({
	    clientID: providers['google'].clientID,
	    clientSecret: providers['google'].clientSecret,
	    callbackURL: providers['google'].callbackURL
	  }
      , googleLogin
	));
};
Example #7
0
	app.get('/auth/google/callback', function(req:Request, res:Response, next:NextFunction) {
		passport.authenticate('google', { session:false}, function(err, token:string, info) {
    		if (!token) {
      			res.json({ success: false, message: 'Google authentication failed.' });
    		} else {
				authSuccessRedirect(res, token);
    		}
  		})(req, res, next);
	});
Example #8
0
 this.router.post("/signin", (req: any, res: any, next: NextFunction) => {
   this.passport.authenticate("local-signin", (err: any, user: any, info: any) => {
     let messages = req.flash("signin");
     if (messages.length > 0) {
       res.status(401).send(messages);
     }
     if (user) {
       let response = { "token": this.createToken(user) };
       res.status(200).send(JSON.stringify(response));
     }
   })(req, res, next);
 });
Example #9
0
function setupAuthRoutes(app: Application, passport:Passport){

	app.get('/login', function(req, res){ res.render("login"); });    
	app.get('/signup', function(req, res){ res.render("signup"); });    
     
	app.post('/auth/signup', authFunction.localSignup);
	app.post('/auth/login', authFunction.localLogin);

	app.get('/auth/facebook', passport.authenticate('facebook', {scope: ['email']}));
	app.get('/auth/google', passport.authenticate('google', {scope: ['profile', 'email']}));

	app.get('/auth/facebook/callback', function(req:Request, res:Response, next:NextFunction) {
		 passport.authenticate('facebook', {session:false}, function(err, token:string, info) {
    		if (!token) {
      			res.json({ success: false, message: 'Facebook authentication failed.' });
    		} else {
				authSuccessRedirect(res, token);
    		}
  		})(req, res, next);
	});

	app.get('/auth/google/callback', function(req:Request, res:Response, next:NextFunction) {
		passport.authenticate('google', { session:false}, function(err, token:string, info) {
    		if (!token) {
      			res.json({ success: false, message: 'Google authentication failed.' });
    		} else {
				authSuccessRedirect(res, token);
    		}
  		})(req, res, next);
	});

	app.get('/logout', function(req, res){
		req.logout();
		res.redirect('/');
	}) ;
}
Example #10
0
function (model: DatabaseObject, passport: Passport): void {
  let opts: any = {}
  opts.secretOrKey = model.tokenSalt
  opts.jwtFromRequest = ExtractJwt.fromHeader('token')

  let strategy = new Strategy(opts, (jwtPayload, done) => {
    model.user.findOne({ _id: jwtPayload._doc._id }).exec()
    .then((account) => {
      account === undefined ? done(undefined, false) : done(undefined, account)
    }, (err) => {
      done(err, false)
    })
  })

  passport.use(strategy)
}