Guest User

Untitled

a guest
Oct 31st, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. onSubmit(user:User) {
  2. let headers = new Headers();
  3. // to send data as form data as passport library want it as a form data
  4. headers.append('Content-Type', 'application/x-www-form-urlencoded');
  5. return this.http.post('/login', user, { headers: headers }).subscribe((data) => {
  6. console.log("Data : ", data);
  7. });
  8. }
  9.  
  10. // Class to bind user data
  11. class User {
  12. constructor(private name: string, private password: string) {
  13. }
  14. }
  15.  
  16. let userList: User[] = [new User(1, "Sunil"), new User(2, "Sukhi")];
  17.  
  18. let app = express();
  19.  
  20. // passport library
  21. let passport = require('passport');
  22. let LocalStrategy = require('passport-local').Strategy;
  23.  
  24. // middlewares
  25. app.use(express.static("public"));
  26. app.use(bodyParser.json());
  27. app.use(bodyParser.urlencoded({ extended: false }));
  28. app.use(session({ resave: false, saveUninitialized: true, secret: "secretKey123!!" }));
  29.  
  30. // passport middleware invoked on every request to ensure session contains passport.user object
  31. app.use(passport.initialize());
  32.  
  33. // load seriliazed session user object to req.user
  34. app.use(passport.session());
  35.  
  36. // Only during the authentication to specify what user information should be stored in the session.
  37. passport.serializeUser(function (user, done) {
  38. console.log("Serializer : ", user)
  39. done(null, user.userId);
  40. });
  41.  
  42. // Invoked on every request by passport.session
  43. passport.deserializeUser(function (userId, done) {
  44. let user = userList.filter(user => userId === user.userId);
  45. console.log("D-serializer : ", user);
  46. // only pass if user exist in the session
  47. if (user.length) {
  48. done(null, user[0]);
  49. }
  50. });
  51. // passport strategy : Only invoked on the route which uses the passport.authenticate middleware.
  52. passport.use(new LocalStrategy({
  53. usernameField: 'name',
  54. passwordField: 'password'
  55. },
  56. function (username, password, done) {
  57. console.log("Strategy : Authenticating if user is valid :", username)
  58. let user = userList.filter(user => username === user.userName);
  59. console.log("Valid user : ",user)
  60. if (!user) {
  61. return done(null, false, { message: 'Incorrect username.' });
  62. }
  63. return done(null, user[0]);
  64. }
  65. ));
  66.  
  67. app.post('/login', passport.authenticate('local', {
  68. successRedirect: '/done',
  69. failureRedirect: '/login'
  70. }));
  71. app.get('/done', function (req, res) {
  72. console.log("Done")
  73. res.send(req.session)
  74. })
  75.  
  76.  
  77. app.get('/login', function (req, res) {
  78. console.log("login")
  79. res.send("login")
  80. })
Add Comment
Please, Sign In to add comment