Advertisement
NikolayPaskulov

Untitled

Nov 24th, 2014
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. /**
  2. * Created by abhiroop on 5/6/14.
  3. */
  4. var express = require('express'),
  5. http = require('http'),
  6. passport = require('passport'),
  7. morgan = require('morgan'),
  8. compress = require('compression'),
  9. bodyParser = require('body-parser'),
  10. methodOverride = require('method-override'),
  11. cookieParser = require('cookie-parser'),
  12. session = require('express-session'),
  13. LocalStrategy = require('passport-local').Strategy,
  14. serverStatic = require('serve-static'),
  15. FIFA = require('./fifa').FIFA;
  16.  
  17. var USER = { username: 'admin', password: 'admin' };
  18.  
  19. var app = express();
  20. app.use(morgan());
  21. app.use(compress());
  22. app.use(bodyParser());
  23.  
  24. passport.serializeUser(function (user, done) {
  25. done(null, user);
  26. });
  27.  
  28. passport.deserializeUser(function (user, done) {
  29. done(null, user);
  30. });
  31. app.use(methodOverride());
  32. app.use(cookieParser());
  33.  
  34. app.use(session({
  35. secret: 'almvnirtgd#$DFsa25452*AYD*D*S!@!#adsda))Ddsadsax',
  36. cookie: { httpOnly: true, secure: false, maxAge: 86400000 },
  37. store: new session.MemoryStore()
  38. }));
  39.  
  40. app.use(passport.initialize());
  41. app.use(passport.session());
  42.  
  43.  
  44. passport.use(new LocalStrategy(function (username, password, done) {
  45. if (USER.username === username) {
  46. if (password === USER.password) {
  47. done(null, USER);
  48. } else {
  49. done(null, false, { msg: 'Incorrect password' });
  50. }
  51. } else {
  52. done(null, false, { msg: 'Could not find user with username ' + username });
  53. }
  54. }));
  55.  
  56.  
  57.  
  58. app.use('/', serverStatic(__dirname + '/app'));
  59.  
  60. var isLoggedIn = function (req, res, next) {
  61. if (req.isAuthenticated()) {
  62. next();
  63. } else {
  64. res.send({
  65. msg: 'Please login to access this information'
  66. }, 400);
  67. }
  68. };
  69.  
  70. app.get('/api/team', function (req, res) {
  71. res.send(FIFA.TEAMS_LIST);
  72. });
  73.  
  74. app.post('/api/login', function (req, res, next) {
  75. passport.authenticate('local', function (err, user) {
  76. if (err) { return next(err); }
  77. if (!user) { return res.send({ loginStatus: false, msg: 'Unable to login' }, 400); }
  78. req.logIn(user, function (err) {
  79. if (err) { return res.send({ msg: 'Error logging in', err: err }, 500); }
  80. return res.send({ loginStatus: true, user: user });
  81. });
  82. })(req, res, next);
  83. });
  84.  
  85. app.get('/api/session', isLoggedIn, function (req, res) {
  86. res.send({
  87. loginStatus: true,
  88. user: req.user
  89. });
  90. });
  91.  
  92. app.get('/api/team/:code', isLoggedIn, function (req, res) {
  93. var code = req.params.code;
  94. res.send(FIFA.TEAM_DETAILS[code]);
  95. });
  96.  
  97. app.get('/api/logout', function (req, res) {
  98. req.logout();
  99. res.redirect('/#/login');
  100. });
  101.  
  102. var port = process.env.PORT || 8000;
  103. app.listen(port);
  104. console.log('Please go to http://localhost:' + port);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement