浏览代码

User tokens working properly

pull/16/head
Djordje Djoric 4 年前
父节点
当前提交
e2e3c43b7a
共有 5 个文件被更改,包括 44 次插入23 次删除
  1. 25
    0
      src/endpoints/token.js
  2. 6
    1
      src/endpoints/user.js
  3. 2
    3
      src/models/token.js
  4. 9
    6
      src/models/user.js
  5. 2
    13
      src/routes/token.js

+ 25
- 0
src/endpoints/token.js 查看文件

const { Router } = require("express")
const User = require("../models/token")
const Token = require('../models/token')
const bcrypt = require('bcryptjs')

const loginUser = async (req, res) => {
try {
const findUser = await Token.findByCredentials(req.body.email, req.body.password)
if(!findUser) {
return res.status(400).send('Wrong credentials!')
}
const isValidPassword = await bcrypt.compare(req.body.password, findUser.password)
if(!isValidPassword) {
return res.status(400).send('Password is incorrect!')
}
const token = await Token.generateAuthToken(findUser)

return res.send(findUser)
} catch (e) {
return res.status(500).send(e)
}
}

module.exports = { loginUser }

+ 6
- 1
src/endpoints/user.js 查看文件

const bcrypt = require("bcryptjs/dist/bcrypt")
const { Router } = require("express") const { Router } = require("express")
const User = require("../models/user") const User = require("../models/user")


try { try {
if (Object.entries(userModel).length !== 0) { if (Object.entries(userModel).length !== 0) {
//create user //create user
return res.status(201).json(userModel)
const newUser = new User(req.body)
newUser.password = await bcrypt.hash(newUser.password, 8)
await newUser.save()

return res.status(201).json(newUser)
} else { } else {
return res.status(400).send('bad request') return res.status(400).send('bad request')
} }

+ 2
- 3
src/models/token.js 查看文件

return return
} }
const checkMatch = await bcrypt.compare(password, user.password) const checkMatch = await bcrypt.compare(password, user.password)
console.log(password)
console.log(user.password)
console.log(checkMatch)
if(checkMatch) { if(checkMatch) {
return user return user
} }
} }


tokenSchema.statics.generateAuthToken = async function(userArg) { tokenSchema.statics.generateAuthToken = async function(userArg) {
console.log('aaa')
const user = userArg const user = userArg
const token = jwt.sign({ _id: user._id.toString() }, 'ovoJeSecret', { expiresIn: 60 * 20 }) const token = jwt.sign({ _id: user._id.toString() }, 'ovoJeSecret', { expiresIn: 60 * 20 })
console.log(token)


user.tokens = user.tokens.concat({ token }) user.tokens = user.tokens.concat({ token })
await user.save() await user.save()

+ 9
- 6
src/models/user.js 查看文件

}] }]
}) })


userSchema.pre('save', async function(next) {
const user = this
// userSchema.pre('save', async function(next) {
// const user = this
// console.log('pre hash: ' + user.password)


user.password = await bcrypt.hash(user.password, 8)
// user.password = await bcrypt.hash(user.password, 8)


console.log('Middleware before password hash')
next()
})
// console.log('posle hash: ' + user.password)

// console.log('Middleware before password hash')
// next()
// })


const User = mongoose.model('User', userSchema) const User = mongoose.model('User', userSchema)



+ 2
- 13
src/routes/token.js 查看文件

const bcrypt = require('bcryptjs') const bcrypt = require('bcryptjs')
const router = new express.Router() const router = new express.Router()
const auth = require('../middleware/auth') const auth = require('../middleware/auth')
const endpoints = require('../endpoints/token')




router.post('/login', async (req, res) => { router.post('/login', async (req, res) => {
const findUser = await Token.findByCredentials(req.body.email, req.body.password)
if(!findUser) {
return res.status(400).send('Wrong credentials!')
}

const isValidPassword = await bcrypt.compare(req.body.password, findUser.password)
if(!isValidPassword) {
return res.status(400).send('Password is incorrect!')
}

const token = await Token.generateAuthToken(findUser)

return res.send(findUser)
return await endpoints.loginUser(req, res)
}) })


router.post('/logout/', async (req, res) => { router.post('/logout/', async (req, res) => {

正在加载...
取消
保存