Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var bcrypt = require('bcrypt-nodejs');
- var express = require('express');
- var User = require('./models/user');
- var Room = require('./models/room');
- var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
- var cookieParser = require('cookie-parser') // get cookie
- mongoose = require('mongoose');
- ObjectId = mongoose.Types.ObjectId;
- //API---------------------------
- module.exports = function(app){
- var apiRoutes = express.Router();
- app.get('/', function(req, res) {
- console.log('TELA DE LOGIN ');
- res.sendfile('./public/views/login/index.html');
- });
- app.post('/user/cadastrar', function(req, res) {
- var user = req.body;
- user.password = bcrypt.hashSync(user.password);
- User.create(user,function(err,user){
- if(err)
- res.send(err);
- User.find(user,function(err,user){
- res.json(user);
- })
- });
- });
- app.get('/dashboard',isAuthenticated, function(req, res) {
- console.log(req.decoded.name+' ACESSOU DASHBOARD');
- res.sendfile('./public/views/dashboard/index.html');
- });
- app.get('/views/*',function(req, res) {
- res.redirect('/');
- });
- // todas as rotas aqui são iniciadas com /api
- //===========================================================================================================
- function isAuthenticated(req, res, next) {
- console.log(req.originalUrl+': VERIFICANDO LOGIN');
- // Verifica se existe o token
- var token = req.body.token || req.query.token || req.headers['x-access-token'] || req.cookies.scopeToken;
- if (token) {
- // verifies secret and checks exp
- jwt.verify(token, app.get('superSecret'), function(err, decoded) {
- if (err) {
- console.log('VERIFICAÇÃO NEGADA - TOKEN FALSO');
- return res.json({ success: false, message: 'Failed to authenticate token.' });
- } else {
- console.log('USUARIO ACEITO!')
- // if everything is good, save to request for use in other routes
- req.decoded = decoded;
- next();
- }
- });
- } else {
- console.log('VERIFICAÇÃO NEGADA - SEM TOKEN');
- res.redirect('/');
- }
- };
- //Gera um token de autenticação apra um usuario
- apiRoutes.post('/auth', function(req, res) {
- console.log('Criando token...');
- console.log(req.body)
- // find the user
- User.findOne({
- login: req.body.login
- }, function(err, user) {
- if (err){
- resp.json(err);
- }
- if (!user) {
- res.json({ success: false, message: 'Authentication failed. User not found.' });
- console.log('Token nao gerado! -- usuario inexistente');
- } else if (user) {
- // check if password matches
- if(!bcrypt.compareSync(req.body.password, user.password)){
- console.log('Token nao gerado!');
- res.json({ success: false, message: 'Authentication failed. Wrong password.' });
- } else {
- //if user is found and password is right
- // create a token
- var token = jwt.sign(user, app.get('superSecret'), {
- expiresIn: 1440 // expires in 24 hours
- });
- console.log('Token gerado!');
- // return the information including token as JSON
- res.json({
- success: true,
- message: 'Enjoy your token!',
- token: token
- });
- }
- }
- });
- });
- //Obtem informações do usuário
- apiRoutes.get('/me',isAuthenticated, function(req, res) {
- console.log('## API/ME ###')
- res.json({user:req.decoded})
- });
- //Obtem todas as salas do aplicativo
- apiRoutes.get('/rooms',isAuthenticated,function(req,res){
- var query = Room.find({});
- query.exec(function(err, rooms){
- if(err)
- res.send(err);
- // If no errors are found, it responds with a JSON of all users
- res.json(rooms);
- });
- });
- //Cadastra uma sala no aplicativo
- apiRoutes.post('/room',isAuthenticated,function(req,res){
- var sala = req.body;
- // Recebo um Json desta forma, preciso transformar as informações
- // {
- // "title":"title",
- // "lat":"lat"
- // "lng":"lng"
- // }
- var newSala = {
- "title": sala.title,
- "location": {
- "type": "Point",
- coordinates: [sala.lat,sala.lng]
- }
- }
- Room.create(newSala,function(err,room){
- if(err)
- res.send(err);
- Room.find(room,function(err,room){
- res.json(room);
- })
- });
- });
- apiRoutes.get('/room',isAuthenticated,function(req,res){
- id = req.query.id;
- console.log(id);
- Room.findOne(
- {"_id": ObjectId.fromString(id)}
- ,function(err,room){
- if(err)
- {
- res.json(err.message)
- }else{
- console.log('sala encontrada');
- console.log(room);
- res.json(room)
- }
- });
- })
- app.use('/api', apiRoutes);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement