1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from db.user import User
from app import app
from middlewares.auth import login_required
from flask import jsonify
import hashlib
from utils.jwt import generate_jwt
from flask import g, request
@app.route('/')
@login_required
def hello_world():
print(g.user.get_id())
return jsonify({"message": "OK"})
@app.route('/signup', methods=["POST"])
def signup():
body = request.json
hashed_password = hashlib.md5(body["password"].encode()).hexdigest()
u = User(
first_name=body["first_name"],
last_name=body["last_name"],
email=body["email"],
hashed_password=hashed_password,
balance=5000000000)
u.store()
return jsonify({"token": generate_jwt(u.get_id()), "type": "Bearer"})
@app.route('/login', methods=["POST"])
def login():
body = request.json
email = body["email"]
password = body["password"]
u = User.find_by_username(email=email)
if u is None:
jsonify({"Error": "Email or password is not matched"}), 401
if u.compare_password(password):
return jsonify({"token": generate_jwt(u.get_id()), "type": "Bearer"})
return jsonify({"Error": "Email or password is not matched"}), 401