· 6 years ago · Feb 04, 2019, 01:00 AM
1const jwt = require('jsonwebtoken')
2const secretKey = require('../../config/secretKey')
3
4module.exports = routes => {
5
6 const db = routes.config.firebaseConfig.collection('users')
7
8 routes.post('/login', async (req, res) => {
9 try {
10 let data = await db.get()
11 let filteredUser = data.docs.find(doc => {
12 let user = doc.data()
13 return user.email == req.body.email && user.password == req.body.password
14 })
15
16 if (filteredUser) {
17 filteredUser = extractUser(filteredUser)
18 let id = filteredUser.id
19 const token = jwt.sign({ id }, secretKey)
20 res.send({ auth: true, token: token, user: filteredUser })
21 } else
22 return res.status(404).send({ auth: false, message: 'User not found'})
23 } catch (error) {
24 return res.status(500).send(error)
25 }
26 })
27
28 extractUser = user => {
29 let v = user.data();
30
31 return {
32 id: user.id,
33 name: v.name,
34 email: v.email,
35 password: v.password
36 }
37 }
38}