Skip to content

Commit

Permalink
finallynpm start able to set cookie in browser now :D
Browse files Browse the repository at this point in the history
  • Loading branch information
swarajpure committed Dec 9, 2020
1 parent 71b0ea5 commit f1b8375
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 21 deletions.
9 changes: 9 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"@google-cloud/firestore": "^4.8.0",
"@hapi/joi": "^17.1.1",
"bcryptjs": "^2.4.3",
"cookie-parser": "^1.4.5",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
Expand Down
47 changes: 29 additions & 18 deletions routes/auth.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ const express = require('express');
const router = express.Router();
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
const User = require('../model/User');
const { loginValidation, registerValidation } = require('../validation');
const { db } = require('../firestore')
const userModel = db.collection('users')
Expand All @@ -21,23 +20,37 @@ router.get('/', async (req, res) => {
})

router.post('/login', async (req,res) => {
const { error } = loginValidation(req.body);
if (error) {
return res.status(400).send(error.details[0].message);
}
try {
const { error } = loginValidation(req.body);
if (error) {
return res.status(400).send(error.details[0].message);
}

const user = await User.findOne({ email: req.body.email});
if (!user){
return res.status(400).send("User not found");
}
const userExists = await userModel.where('email', '==', req.body.email).limit(1).get()
if (userExists.empty){
return res.status(400).send("User not found");
}

const validPass = await bcrypt.compare(req.body.password, user.password);
if (!validPass) {
return res.status(400).send("Wrong Password");
}
let userDetails;
userExists.forEach(doc => {
userDetails = doc.data();
})
console.log(userDetails)

const validPass = await bcrypt.compare(req.body.password, userDetails.password);
if (!validPass) {
return res.status(400).send("Wrong Password");
}

const token = jwt.sign({ id: userDetails.id, role: userDetails.role}, process.env.TOKEN_SECRET);
return res.cookie('session', token, {
domain: 'localhost',
expires: new Date(Date.now() + 9999999999)
}).json({ message: 'Login Successful!'} );
} catch (err){
return res.json(`Error: ${err}`)
}

const token = jwt.sign({ _id: user._id, role: user.role}, process.env.TOKEN_SECRET);
return res.cookie('session', token).json({ message: 'Login Successful!'} );
})

router.post('/register', async (req, res) => {
Expand All @@ -47,9 +60,7 @@ router.post('/register', async (req, res) => {
}

const emailExists = await userModel.where('email', '==', req.body.email).limit(1).get()
console.log(emailExists.data)
if (!emailExists.empty){
console.log(emailExists.data)
return res.status(400).json("Email already exists");
}

Expand All @@ -70,7 +81,7 @@ router.post('/register', async (req, res) => {
}
try {
const savedUser = await userModel.add(user)
return res.status(200).json("User registered successfully! " + savedUser.id);
return res.status(200).json(`${user.name} registered successfully!`);
}
catch(err) {
return res.status(500).json(err);
Expand Down
12 changes: 9 additions & 3 deletions server.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,14 @@ const app = express();
const authRoute = require('./routes/auth');
const postsRoute = require('./routes/posts');
const dotenv = require('dotenv');
const cookieParser = require('cookie-parser');
const cors = require('cors');
app.use(cors({
origin: 'http:https://localhost:3000',
credentials: true
}));
app.use(cookieParser());

app.use(cors());

dotenv.config();

Expand All @@ -14,6 +19,7 @@ app.use(express.json());
app.use('/users', authRoute);
app.use('/posts', postsRoute);

app.listen(3000, () => {
console.log("server running");
const PORT = 4000;
app.listen(PORT, () => {
console.log(`Server running on PORT ${PORT}`);
})

0 comments on commit f1b8375

Please sign in to comment.