Implement login API, closes #1 #2
2 Participants
Due Date
Notifications
Total Time Spent: 1 hour 4 minutes
Sweetbread
1 hour 4 minutes
No due date set.
Dependencies
No dependencies set.
Reference: Hackaton/Backend#2
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@@ -0,0 +1,12 @@from flask import Blueprint, requestfrom model.user import userloginBP = Blueprint("loginapi", __name__)Что это и зачем?
Зачем отдельный роутер? Может потому что это правильная MVC структура?
@@ -0,0 +3,4 @@loginBP = Blueprint("loginapi", __name__)@loginBP.route('/api/login', methods = ['POST'])->
/api/auth/loginЗачем?
ТЗ
@@ -0,0 +6,4 @@@loginBP.route('/api/login', methods = ['POST'])def login():email = request.form['email']password = request.form['password']Данные в запросе приходят в JSON, а не в форме
@@ -0,0 +10,4 @@token: str@classmethoddef initialize(cls, email:str, passwd:str):email: str, ...)initialize(user.initialize(...)), когда уже есть__init__(user(...))?@@ -0,0 +14,4 @@#us = getUsModel() #возвращает словарьid = 1#us['id']name = 'Bob'#us['name']role = 'Backend'#us['role']Выглядит, как что-то недоработанное
Может потому что нет бд?)
Так а зачем PR отправил?
@@ -0,0 +16,4 @@name = 'Bob'#us['name']role = 'Backend'#us['role']token = generateKey(email, passwd)return cls(id=id, name=name, role=role, token=token)Попробуй просто по порядку перечислять аргументы, а то
x=xтак себе выглядит@@ -0,0 +19,4 @@return cls(id=id, name=name, role=role, token=token)def toJSON(self):return json.dumps({"token": f'{self.token}', "user": {"id": self.id, "role": f'{self.role}', "name": f'{self.name}'}})@@ -0,0 +1,10 @@import psycopgimport osdef PSQLConnect():Где используется?
Вспомогательный модуль для работы с БД
Я вижу что это. Где используется?
./db/Initalizedb
Такого файла нет
Он пока не готов я его дописываю
@@ -0,0 +5,4 @@conn = psycopg.connect(os.getenv('POSTDRESS_CONNECTION'))return conndef PSQLCursor(conn):Где используется?
./db/Initalizedb
@@ -0,0 +6,4 @@return conndef PSQLCursor(conn):cur = conn.cursor()Пробел лишний
@@ -0,0 +1,12 @@import osfrom dotenv import load_dotenvdef initializeENV():Где используется?
Функция загружающая переменные окружения
Я вижу что это. Где используется?
./db/Initalizedb, щас поставлю в другое место
@@ -0,0 +8,4 @@print('.env is loaded')return 1else:print('.env isn`t loaded')Пока ладно, но надо бы либы для логирования использовать
@@ -0,0 +3,4 @@def generateKey(email, passwd):key = os.getenv('KEY')encoded = jwt.encode({f"{email}": f"{passwd}"}, key, algorithm="HS256")1.encoded = jwt.encode({email: passwd}, key, algorithm="HS256")2. Добавь
iat, на всякий случайLogin Apito Implement login API, closes #1@@ -0,0 +9,4 @@password = request.form['password']#if(isvalid(email, password)):us = user.initialize(email, password)return us.toJSON()jsonifyдля корректных заголовков ответа и отсутствия костылейView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.