Adiciona login ao usuario
This commit is contained in:
@@ -6,12 +6,10 @@ from controller.dispositivo_controller import dispositivo_bp
|
|||||||
from controller.leitura_controller import leitura_bp
|
from controller.leitura_controller import leitura_bp
|
||||||
import os
|
import os
|
||||||
|
|
||||||
# Variaveis dinamicas que sao usadas para definir qual a porta do servidor e o host do mesmo
|
|
||||||
host = str(os.environ.get("HOST", "localhost"))
|
host = str(os.environ.get("HOST", "localhost"))
|
||||||
port = int(os.environ.get("PORT", 5000))
|
port = int(os.environ.get("PORT", 5000))
|
||||||
debug = str(os.environ.get("DEBUG", "true"))
|
debug = str(os.environ.get("DEBUG", "true"))
|
||||||
|
|
||||||
# Variaveis dinamicas usadas para definir o Host do banco de dados assim conectando a banco de dados dedicado
|
|
||||||
db_user = str(os.environ.get("POSTGRES_DB_KEY", "fauUser"))
|
db_user = str(os.environ.get("POSTGRES_DB_KEY", "fauUser"))
|
||||||
db_name = str(os.environ.get("POSTGRES_USER_KEY", "facu"))
|
db_name = str(os.environ.get("POSTGRES_USER_KEY", "facu"))
|
||||||
db_host = str(os.environ.get("POSTGRES_HOST_KEY", "127.0.0.1"))
|
db_host = str(os.environ.get("POSTGRES_HOST_KEY", "127.0.0.1"))
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from flask import Blueprint, request, jsonify
|
from flask import Blueprint, request, jsonify
|
||||||
from service.usuario_service import UsuarioService
|
from service.usuario_service import UsuarioService
|
||||||
from model.usuario import EmailJaCadastrado, UsuarioNaoEncontrado
|
from model.usuario import EmailJaCadastrado, UsuarioNaoEncontrado, SenhaInvalida
|
||||||
|
|
||||||
usuario_bp = Blueprint('usuario', __name__)
|
usuario_bp = Blueprint('usuario', __name__)
|
||||||
|
|
||||||
@@ -24,6 +24,26 @@ def registrar():
|
|||||||
return jsonify({"erro": "Email ja cadastrado"}), 409
|
return jsonify({"erro": "Email ja cadastrado"}), 409
|
||||||
|
|
||||||
|
|
||||||
|
@usuario_bp.route('/auth/login', methods=['POST'])
|
||||||
|
def login():
|
||||||
|
dados = request.get_json()
|
||||||
|
try:
|
||||||
|
usuario = UsuarioService.instancia().login(
|
||||||
|
email=dados['email'],
|
||||||
|
senha=dados['senha']
|
||||||
|
)
|
||||||
|
return jsonify({
|
||||||
|
"id": usuario.id,
|
||||||
|
"nome": usuario.nome,
|
||||||
|
"email": usuario.email,
|
||||||
|
"token_api": usuario.token_api
|
||||||
|
})
|
||||||
|
except UsuarioNaoEncontrado:
|
||||||
|
return jsonify({"erro": "Email nao encontrado"}), 404
|
||||||
|
except SenhaInvalida:
|
||||||
|
return jsonify({"erro": "Senha invalida"}), 401
|
||||||
|
|
||||||
|
|
||||||
@usuario_bp.route('/auth/usuario/<int:id>', methods=['GET'])
|
@usuario_bp.route('/auth/usuario/<int:id>', methods=['GET'])
|
||||||
def buscar(id):
|
def buscar(id):
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -10,6 +10,10 @@ class EmailJaCadastrado(Exception):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class SenhaInvalida(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Usuario(db.Model):
|
class Usuario(db.Model):
|
||||||
__tablename__ = 'usuarios'
|
__tablename__ = 'usuarios'
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from model.usuario import Usuario, UsuarioNaoEncontrado, EmailJaCadastrado
|
from model.usuario import Usuario, UsuarioNaoEncontrado, EmailJaCadastrado, SenhaInvalida
|
||||||
from dao.usuario_dao import UsuarioDao
|
from dao.usuario_dao import UsuarioDao
|
||||||
import bcrypt
|
import bcrypt
|
||||||
|
|
||||||
@@ -32,3 +32,17 @@ class UsuarioService:
|
|||||||
if not usuario:
|
if not usuario:
|
||||||
raise UsuarioNaoEncontrado()
|
raise UsuarioNaoEncontrado()
|
||||||
return usuario
|
return usuario
|
||||||
|
|
||||||
|
def login(self, email, senha):
|
||||||
|
usuario = self.dao.buscar_por_email(email)
|
||||||
|
if not usuario:
|
||||||
|
raise UsuarioNaoEncontrado()
|
||||||
|
|
||||||
|
senha_correta = bcrypt.checkpw(
|
||||||
|
senha.encode('utf-8'),
|
||||||
|
usuario.senha_hash.encode('utf-8')
|
||||||
|
)
|
||||||
|
if not senha_correta:
|
||||||
|
raise SenhaInvalida()
|
||||||
|
|
||||||
|
return usuario
|
||||||
|
|||||||
Reference in New Issue
Block a user