Alterações acerca de login e session
This commit is contained in:
@@ -1,9 +1,19 @@
|
|||||||
import { Router } from 'express';
|
import { Router } from 'express';
|
||||||
|
import { sign, verify } from 'jsonwebtoken';
|
||||||
|
|
||||||
|
import authConfig from '../config/auth';
|
||||||
|
import AppError from '../errors/AppError';
|
||||||
|
|
||||||
import AuthenticateUserService from '../services/AuthenticateUserService';
|
import AuthenticateUserService from '../services/AuthenticateUserService';
|
||||||
|
|
||||||
const sessionsRouter = Router();
|
const sessionsRouter = Router();
|
||||||
|
|
||||||
|
interface TokenPayload {
|
||||||
|
iat: number;
|
||||||
|
exp: number;
|
||||||
|
sub: string;
|
||||||
|
}
|
||||||
|
|
||||||
// login pode ser: email ou username
|
// login pode ser: email ou username
|
||||||
sessionsRouter.post('/', async (request, response) => {
|
sessionsRouter.post('/', async (request, response) => {
|
||||||
const { login, password } = request.body;
|
const { login, password } = request.body;
|
||||||
@@ -18,4 +28,21 @@ sessionsRouter.post('/', async (request, response) => {
|
|||||||
return response.json({ message: 'Usuário autenticado com sucesso!', token: token });
|
return response.json({ message: 'Usuário autenticado com sucesso!', token: token });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
sessionsRouter.post('/refresh', async(request, response) => {
|
||||||
|
const { token } = request.body;
|
||||||
|
|
||||||
|
let sub = null;
|
||||||
|
let decoded = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
decoded = verify(token, authConfig.jwt.secret);
|
||||||
|
} catch (error) {
|
||||||
|
throw new AppError('Token de autenticação inválido.', 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub = decoded as TokenPayload;
|
||||||
|
|
||||||
|
return response.json({ "status": "success", "userId": sub.sub });
|
||||||
|
})
|
||||||
|
|
||||||
export default sessionsRouter;
|
export default sessionsRouter;
|
||||||
|
|||||||
Reference in New Issue
Block a user