sessions added
This commit is contained in:
parent
47dc0848ca
commit
526a97268e
22
backend/package-lock.json
generated
22
backend/package-lock.json
generated
@ -6,6 +6,7 @@
|
|||||||
"": {
|
"": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
|
"cookie-parser": "^1.4.5",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"express-session": "^1.17.1",
|
"express-session": "^1.17.1",
|
||||||
@ -128,6 +129,18 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/cookie-parser": {
|
||||||
|
"version": "1.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
|
||||||
|
"integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
|
||||||
|
"dependencies": {
|
||||||
|
"cookie": "0.4.0",
|
||||||
|
"cookie-signature": "1.0.6"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/cookie-signature": {
|
"node_modules/cookie-signature": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
@ -955,6 +968,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
|
||||||
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
|
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
|
||||||
},
|
},
|
||||||
|
"cookie-parser": {
|
||||||
|
"version": "1.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
|
||||||
|
"integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
|
||||||
|
"requires": {
|
||||||
|
"cookie": "0.4.0",
|
||||||
|
"cookie-signature": "1.0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"cookie-signature": {
|
"cookie-signature": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
|
"cookie-parser": "^1.4.5",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"express-session": "^1.17.1",
|
"express-session": "^1.17.1",
|
||||||
|
|||||||
@ -4,8 +4,8 @@ var router = express.Router();
|
|||||||
var RoomModel = require('../schemas/room');
|
var RoomModel = require('../schemas/room');
|
||||||
|
|
||||||
//creating new room in db
|
//creating new room in db
|
||||||
router.post('/add', async function (req, res) {
|
router.post('/add', function (req, res) {
|
||||||
let id;
|
console.log(req.session);
|
||||||
RoomModel.findOne( { full: false, started: false }, function (err, results) {
|
RoomModel.findOne( { full: false, started: false }, function (err, results) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
@ -18,7 +18,12 @@ router.post('/add', async function (req, res) {
|
|||||||
players: [req.body.name],
|
players: [req.body.name],
|
||||||
});
|
});
|
||||||
newRoom.save()
|
newRoom.save()
|
||||||
.then(()=>{res.send({id: results._id}); })
|
.then( async function(){
|
||||||
|
req.session.roomId = newRoom._id;
|
||||||
|
req.session.player = req.body.name;
|
||||||
|
|
||||||
|
res.send({id: newRoom._id});
|
||||||
|
})
|
||||||
.catch(err => res.status(400).json('Error: ' + err))
|
.catch(err => res.status(400).json('Error: ' + err))
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
@ -36,11 +41,21 @@ router.post('/add', async function (req, res) {
|
|||||||
console.log(err)
|
console.log(err)
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
req.session.roomId = results._id;
|
||||||
|
req.session.player = req.body.name;
|
||||||
console.log("Updated Docs : ", docs);
|
console.log("Updated Docs : ", docs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
).then(()=>{
|
||||||
res.send({id: results._id});
|
req.session.roomId = results._id;
|
||||||
|
req.session.player = req.body.name;
|
||||||
|
console.log(req.session);
|
||||||
|
res.send({
|
||||||
|
id: results._id,
|
||||||
|
player: req.session.player
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,15 +1,37 @@
|
|||||||
const express = require("express");
|
const express = require("express");
|
||||||
const cors = require('cors');
|
const cors = require('cors');
|
||||||
|
const cookieParser = require('cookie-parser')
|
||||||
const session = require('express-session')
|
const session = require('express-session')
|
||||||
const bodyParser = require('body-parser');
|
const bodyParser = require('body-parser');
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
app.use(cookieParser());
|
||||||
app.use(bodyParser.urlencoded({
|
app.use(bodyParser.urlencoded({
|
||||||
extended: true
|
extended: true
|
||||||
}));
|
}));
|
||||||
app.use(bodyParser.json());
|
app.use(bodyParser.json());
|
||||||
app.use(cors());
|
app.set('trust proxy', 1)
|
||||||
|
app.use(cors({
|
||||||
|
origin: [
|
||||||
|
'localhost:3001',
|
||||||
|
'http://localhost:3001',
|
||||||
|
'https://localhost:3001'
|
||||||
|
],
|
||||||
|
credentials: true,
|
||||||
|
}))
|
||||||
const PORT = 3000|| process.env.PORT;
|
const PORT = 3000|| process.env.PORT;
|
||||||
|
|
||||||
|
//SESSION CONFIG
|
||||||
|
app.use(session({
|
||||||
|
secret: 'lalala',
|
||||||
|
resave: false,
|
||||||
|
saveUninitialized: true,
|
||||||
|
cookie: {
|
||||||
|
httpOnly: false,
|
||||||
|
secure: false,},
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
//DATABASE CONFIG
|
//DATABASE CONFIG
|
||||||
const mongoose = require("mongoose");
|
const mongoose = require("mongoose");
|
||||||
const CONNECTION_URI = require("./credentials.js").MONGODB_URL;
|
const CONNECTION_URI = require("./credentials.js").MONGODB_URL;
|
||||||
@ -27,6 +49,10 @@ mongoose.connect(CONNECTION_URI, {
|
|||||||
const roomRoutes = require("./routes/room");
|
const roomRoutes = require("./routes/room");
|
||||||
const playerRoutes = require("./routes/player");
|
const playerRoutes = require("./routes/player");
|
||||||
|
|
||||||
|
app.post('/', (req,res)=>{
|
||||||
|
res.send("ok");
|
||||||
|
})
|
||||||
|
|
||||||
app.use('/player', playerRoutes);
|
app.use('/player', playerRoutes);
|
||||||
app.use('/room', roomRoutes);
|
app.use('/room', roomRoutes);
|
||||||
|
|
||||||
|
|||||||
@ -36,5 +36,6 @@
|
|||||||
"last 1 firefox version",
|
"last 1 firefox version",
|
||||||
"last 1 safari version"
|
"last 1 safari version"
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
"proxy": "http://localhost:3000"
|
||||||
}
|
}
|
||||||
|
|||||||
18
src/App.js
18
src/App.js
@ -1,13 +1,27 @@
|
|||||||
import React, { useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
|
import axios from 'axios';
|
||||||
import { BrowserRouter as Router , Redirect } from 'react-router-dom';
|
import { BrowserRouter as Router , Redirect } from 'react-router-dom';
|
||||||
import NameInput from './components/NameInput';
|
import NameInput from './components/NameInput';
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
|
useEffect(()=>{
|
||||||
|
axios.post('http://localhost:3000', {
|
||||||
|
credentials: 'include',
|
||||||
|
mode: 'cors'
|
||||||
|
})
|
||||||
|
.then((response)=> response.id!=null ? setRedirect(true): null);
|
||||||
|
})
|
||||||
const [id, setId] = useState('')
|
const [id, setId] = useState('')
|
||||||
const [redirect, setRedirect] = useState(false)
|
const [redirect, setRedirect] = useState(false)
|
||||||
const idCallback = (id)=>{
|
const idCallback = (id)=>{
|
||||||
setId(id);
|
setId(id);
|
||||||
setRedirect(true);
|
|
||||||
|
axios.post('http://localhost:3000', {
|
||||||
|
credentials: 'include',
|
||||||
|
mode: 'cors',
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
})
|
||||||
|
.then(()=> setRedirect(true))
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<Router>
|
<Router>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user