Como ter sessões simultaneas no Node?

0 respostas
javascriptnodejs
D

Olá criei um servidor node de CRUD basico usando o Postgres do Heroku e Mysql, o problema é que ele só permite que crie uma sessão, ou seja se você loga em um dispositivos todos que entram no site são logados também. Como resolver isso e se me indicarem uma biblioteca poderiam me explicar como ela funciona?

const express = require('express');
  const session = require('cookie-session');
  const bodyParser = require('body-parser');
  const app = express();
  const Sequelize = require('sequelize')


  app.use(express.json())
  app.use(session({
        secret:'wtsrtsgt1234@3#22',

  })
         )

  app.use(bodyParser.json());      
  app.use(bodyParser.urlencoded({extended: true}));


  const sequelize = new Sequelize(process.env.DATABASE_URL,{
      dialect: 'postgres',
      protocol: 'postgres',
      port:5432
  })


  /*
  const sequelize = new Sequelize('player','root','',{
      host:'localhost',
      dialect:'mysql'
  })
  */

  const Usuarios = sequelize.define('usuarios',{
      email: {
          type: Sequelize.STRING
      },
      senha:{
          type: Sequelize.STRING
      },
      nivel:{
          type: Sequelize.STRING
      }
  })
  let sess;



  app.get('/', (req,res)=>{
      Usuarios.sync({force:true})
      if(sess == undefined){
          res.sendfile(__dirname+"/public/login.html")
      }
      else{
          res.send("YOU ARE A COMMUM USER")
      }

  })

  app.post('/login', async (req,res)=>{
      let email = req.body.email;
      let senha = req.body.senha;
      if(email == "empty" || senha == "empty"){
          res.json({"MENSAGEM":"Algum campo está vazio"})
      }
      else{
          const retorno = await Usuarios.findOne({ where: { email: email, senha:senha } })
              if(retorno == null){
                  res.json({"MENSAGEM":"Não existe essa conta"})
               }
              else{
                  res.json({"MENSAGEM":"Logado"})
                  sess = req.session
                  sess.nivel = retorno.nivel
               }

      }




  })
  app.get('/a', (req,res)=>{
      res.send('pock')
  })
  app.post('/registre', async (req,res)=>{
      let email = req.body.email
      let senha = req.body.senha
      let confirm = req.body.confirm

      if(senha != confirm && senha != "empty"){
          res.json({"MENSAGEM":"Senhas não batem"})
      }
      else if(senha == "empty" || confirm == "empty" || email == "empty"){
          console.log('ERRO:falta preencher um campo')
          res.json({"MENSAGEM":"Falta preencher um campo"})
      }
      else{
          const retorno = await Usuarios.findOne({ where: { email: email } })
          if(retorno == null){
              Usuarios.create({
                  email: email,
                  senha: senha,
                  nivel: 'comum'
          })
          res.json({"MENSAGEM":"Conta criada"})
      }
          else{
              res.json({
                  "MENSAGEM":"Esse email já existe"
              })
          }

      }

  })

  app.listen(process.env.PORT || 3000)
  ```
Criado 7 de abril de 2020
Respostas 0
Participantes 1