Alterações acerca de login e session
This commit is contained in:
@@ -1,9 +1,19 @@
|
||||
import { Router } from 'express';
|
||||
import { sign, verify } from 'jsonwebtoken';
|
||||
|
||||
import authConfig from '../config/auth';
|
||||
import AppError from '../errors/AppError';
|
||||
|
||||
import AuthenticateUserService from '../services/AuthenticateUserService';
|
||||
|
||||
const sessionsRouter = Router();
|
||||
|
||||
interface TokenPayload {
|
||||
iat: number;
|
||||
exp: number;
|
||||
sub: string;
|
||||
}
|
||||
|
||||
// login pode ser: email ou username
|
||||
sessionsRouter.post('/', async (request, response) => {
|
||||
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 });
|
||||
});
|
||||
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user