fix: login with token returns new token
This commit is contained in:
@@ -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
|
||||
25
server/controllers/auth/login-with-token.js
Normal file
25
server/controllers/auth/login-with-token.js
Normal 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
|
||||
1
server/package-lock.json
generated
1
server/package-lock.json
generated
@@ -5,6 +5,7 @@
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "server",
|
||||
"version": "0.1.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user