fix: login with token returns new token

This commit is contained in:
Ben Elferink
2021-10-27 19:06:47 +03:00
parent e9e8584d82
commit 75979bce3d
6 changed files with 62 additions and 36 deletions

View File

@@ -1,20 +0,0 @@
const Account = require('../../models/Account')
async function getAccount(request, response, next) {
try {
const {uid} = request.auth
// Get account from DB, existance not verified because we are already authorized at this point
const foundAccount = await Account.findOne({_id: uid}).select('-password')
response.status(200).json({
message: 'Account fetched',
data: foundAccount,
})
} catch (error) {
console.error(error)
response.status(500).send()
}
}
module.exports = getAccount

View File

@@ -0,0 +1,25 @@
const Account = require('../../models/Account')
const { signToken } = require('../../middlewares/jsonwebtoken')
async function loginWithToken(request, response, next) {
try {
const { uid } = request.auth
// Get account from DB, existance not verified because we are already authorized at this point
const foundAccount = await Account.findOne({ _id: uid }).select('-password')
// Generate access token
const token = signToken({ uid: foundAccount._id, role: foundAccount.role })
response.status(200).json({
message: 'Account fetched',
data: foundAccount,
token,
})
} catch (error) {
console.error(error)
response.status(500).send()
}
}
module.exports = loginWithToken

View File

@@ -5,6 +5,7 @@
"requires": true,
"packages": {
"": {
"name": "server",
"version": "0.1.0",
"license": "ISC",
"dependencies": {

View File

@@ -1,8 +1,8 @@
const express = require('express')
const {authorizeBearerToken} = require('../middlewares/jsonwebtoken')
const { authorizeBearerToken } = require('../middlewares/jsonwebtoken')
const register = require('../controllers/auth/register')
const login = require('../controllers/auth/login')
const getAccount = require('../controllers/auth/get-account')
const loginWithToken = require('../controllers/auth/login-with-token')
// initialize router
const router = express.Router()
@@ -14,6 +14,6 @@ router.post('/register', [], register)
router.post('/login', [], login)
// GET at path: http://localhost:8080/auth/account
router.get('/account', [authorizeBearerToken], getAccount)
router.get('/login', [authorizeBearerToken], loginWithToken)
module.exports = router