Advertisement
Guest User

Untitled

a guest
Aug 18th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.30 KB | None | 0 0
  1. var express = require('express');
  2. var session = require('express-session');
  3. var cookieParser = require('cookie-parser');
  4. var app = express();
  5. var bodyParser = require('body-parser');
  6. var morgan = require('morgan');
  7. var mongoose = require('mongoose');
  8. var config = require('./config/database');
  9. var cors = require('cors');
  10.  
  11. mongoose.connect(config.database, function(err, db){
  12. if(!err){
  13. console.log('Conectado');
  14. }
  15. });
  16.  
  17. var passport = require('passport');
  18.  
  19. app.use(bodyParser.urlencoded({extended: true}));
  20. app.use(bodyParser.json());
  21. app.use(cookieParser());
  22. app.use(session({ secret: 'SecretSession'}));
  23. app.use(passport.initialize());
  24. app.use(passport.session());
  25. app.use(express.static(__dirname + '/public'))
  26. app.use(morgan('dev'));
  27. app.use(cors());
  28.  
  29. var initPassport = require('./config/passport');
  30. initPassport(passport);
  31.  
  32.  
  33. var index = require('./config/index')(passport);
  34. app.use('/', index);
  35.  
  36. server.listen(3030, function(){
  37. console.log('Rodando ');
  38. });
  39.  
  40. var User = require('../app/models/user');
  41. var login = require('./login');
  42. var signup = require('./signup');
  43.  
  44. module.exports = function(passport){
  45. passport.serializeUser(function(user, done) {
  46. console.log('serializing user: ');console.log(user);
  47. done(null, user._id);
  48. });
  49.  
  50. passport.deserializeUser(function(id, done) {
  51. User.findById(id, function(err, user) {
  52. console.log('deserializing user:',user);
  53. done(err, user);
  54. });
  55. });
  56.  
  57. login(passport);
  58. signup(passport);
  59. }
  60.  
  61. var LocalStrategy = require('passport-local').Strategy;
  62. var User = require('../app/models/user');
  63. var bCrypt = require('bcrypt-nodejs');
  64.  
  65. module.exports = function(passport){
  66.  
  67. passport.use('login', new LocalStrategy({
  68. passReqToCallback: true
  69. },
  70. function(req, username, password, done){
  71. User.findOne({'username': username}, function(err, user){
  72. if(err){
  73. return done(err);
  74. }
  75. if(!user){
  76. console.log('NENHUM USUARIO ENCONTRADO COM O LOGIN ' + username);
  77. return done(null, false);
  78. }
  79. if(!validatePassword(user, password)){
  80. console.log('PASSWORD INVALIDO');
  81. return done(null, false);
  82. }
  83. return done(null, user);
  84. });
  85. }
  86. ));
  87.  
  88. var validatePassword = function(user, password){
  89. return bCrypt.compareSync(password, user.password);
  90. }
  91. }
  92.  
  93. var LocalStrategy = require('passport-local').Strategy;
  94. var User = require('../app/models/user');
  95. var bCrypt = require('bcrypt-nodejs');
  96.  
  97. module.exports = function(passport){
  98.  
  99. passport.use('signup', new LocalStrategy({
  100.  
  101. passReqToCallback: true
  102.  
  103. }, function(req, username, password, done){
  104.  
  105. findOrCreateUser = function(){
  106. User.findOne({'username' : username}, function(err, user){
  107. if(err){
  108. console.log('ocorreu um erro ' + err);
  109. return done(err)
  110. }
  111. if(user){
  112. console.log('usuario ja cadastrado');
  113. return done(null, false);
  114. }else{
  115. var novoUsuario = new User();
  116. novoUsuario.username = username;
  117. novoUsuario.password = createHash(password);
  118. novoUsuario.nome = req.param('nome');
  119. novoUsuario.email = req.param('email');
  120.  
  121. novoUsuario.save(function(err){
  122. if(err){
  123. throw err;
  124. }
  125. console.log('usuario cadastrado com sucesso');
  126. return done(null, novoUsuario);
  127. });
  128. }
  129.  
  130. });
  131. }
  132. process.nextTick(findOrCreateUser);
  133.  
  134. }));
  135.  
  136. var createHash = function(password){
  137. return bCrypt.hashSync(password, bCrypt.genSaltSync(10), null);
  138. }
  139. }
  140.  
  141. var express = require('express');
  142. var app = express();
  143. var router = express.Router();
  144. var jwt = require('jwt-simple');
  145.  
  146. var isAuthenticated = function(req, res, next){
  147. if(req.isAuthenticated()){
  148. return next();
  149. }else{
  150. res.redirect('/');
  151. }
  152.  
  153. }
  154.  
  155. module.exports = function(passport){
  156.  
  157.  
  158. router.post('/api/login', function(req, res, next){
  159. passport.authenticate('login', function(err, user){
  160. if(err){
  161. res.json({sucesso: false, mensagem: 'Erro ao logar', erro: err});
  162. }
  163. else{
  164. var token = jwt.encode(user, 'JwTaUtHaNGULAR');
  165. return res.send({sucesso: true, token: 'JWT ' + token, mensagem: 'Autenticação OK'});
  166. }
  167. })(req, res, next);
  168. });
  169.  
  170. router.post('/api/cadastro', function(req, res, next){
  171. passport.authenticate('signup', function(err, user){
  172. if(err){
  173. res.json({sucesso: false, mensagem: 'Erro ao criar usuário', erro: err});
  174. }
  175. else{
  176. res.json({sucesso: true, mensagem: 'Usuario criado com sucesso'});
  177. }
  178. })(req, res, next);
  179. });
  180.  
  181. router.get('/api/dashboard/users', isAuthenticated ,function(req, res){
  182. console.log('request', req)
  183. Usuario.find({'_id': {$ne: id_user}}, function(err, usuario){
  184. res.json({sucesso: true, user: usuario});
  185. });
  186. });
  187.  
  188.  
  189. return router;
  190. }
  191.  
  192. var mongoose = require('mongoose');
  193. var Schema = mongoose.Schema;
  194.  
  195. var UsuarioSchema = new Schema({
  196. username: {
  197. type: String,
  198. required: true,
  199. unique: true
  200. },
  201. password: {
  202. type: String,
  203. required: true
  204. },
  205. nome: {
  206. type: String,
  207. require: false
  208. },
  209. email: {
  210. type: String,
  211. unique: false,
  212. require: false
  213. }
  214. });
  215.  
  216. module.exports = mongoose.model('Usuario', UsuarioSchema);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement