From e50e834acc05ca69133553212795db8a8fd545ad Mon Sep 17 00:00:00 2001 From: ComeF2 <123363885+ComeF2@users.noreply.github.com> Date: Sat, 4 Feb 2023 14:28:03 +0100 Subject: [PATCH] =?UTF-8?q?Impl=C3=A9mentation=20sign=5Fin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../database_helper.cpython-311.pyc | Bin 1491 -> 2740 bytes Lab2/database.db | Bin 12288 -> 12288 bytes Lab2/database.db-journal | Bin 0 -> 4616 bytes Lab2/database_helper.py | 23 ++++++++++++++++-- Lab2/server.py | 22 ++++++++++++++++- 5 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 Lab2/database.db-journal diff --git a/Lab2/__pycache__/database_helper.cpython-311.pyc b/Lab2/__pycache__/database_helper.cpython-311.pyc index b55baac245e748f252af404f47fbf0d0dba6711e..100e86dddec4b61d24a4b59b06594d316c8cdfae 100644 GIT binary patch delta 1310 zcmcc2y+xF7IWI340|NuYwwQa#yICgkNif<>R5y@iZ()dHPvK}`h~h|L3}(>ed<jzI zr^$GWG5y!XjC&kx3=9mKj74md{TL@O@=U(ZXlrtVo43L9Ge})Bh=5^`N@fNIhR+_1 z3=Gp5N*G}h3=CO}lXF-km}?noCa-5w)u?4GVMj=&Fr_drV`5-f%>)xOWvFGUVOqd4 zIgv?t@=+#!wp!*I#s#b(t}8<g^D;&ThShM>85vT*5Y-4qhCFU%21ABomU5;F=17Ke zMn;B621W)(h8l(iY#@^+A7v6`sbN^a4&?~dGXyheviKFTFfcGwaTO<Lq~<2-6&L2* zVl2|+DB@sXU?}2bU|_h#mRwp?oL_W{CBGmw?-ol@YGTSQ-qecJ<kFJV;^d;tf|6To z$@#gtnI*SalXLQmQ#Dy`u_Wi`<rN8lw6mmT=A_<YE-uU|2HB*bprBC14U(wmPcBML zEJ=+|Ni0cBN-Rz-l4M|D;9+23C_c!*z|g>Oms_aEeunKuZp|y)nhh>Dcm?~TyP`W| zdtw{h?sD>W<jios$f<CJQ{e*x6RXk!mm7RS{h3{vo!LFv9n3d4_^xxvT;h<K5qyzD z@d}6H1rEgztW2y*V8tM!Ug;x9-xm-8;v;0xSwDXKz^Z_aft9n}yUDxJx5c-?_XZ0` zyH}G}qfd)Z0~i(yGB7ag)N<5kKB&*)Xv}`ljM34UJsFl1ChIeO76N(q7CSUFi$oY0 z7$%!D`-y`Ch#ML{rNya5Mam2e45FLoFiSG3g7g$gGcYi$WGLbVMH5&xM{-VTVqSbo zQjr=11B2}3TP$AU$?zn`z`(%Dz`y`buRA8&GMP_4#>B@0N_LYsFp0^eFxD{CFs3u1 zC#o8z1<cU&!e3v@T*F+%l)@Cukis0ypv(YDVIUSHy=k)eRT&1m`nWoWC}=6T1^N3b zga*3?1uKMmxCXf@xcWMJ`q<hlIQqFL1ULo<hx-S)*xFl%xM{K!fjtCDEMQ;V;z&y^ zNzTa6OVwm4k^%Wo7DNctgAxr3C@|0x5>H}jNk(d3NoI0lNotW60|SE!C=sQB6VV4I z4pz~-g5nb;rbtYepCo@#Q0a=GQU}`&4!(ZAF1`!mUME5?gv4C%iM_}XcZDPF0!Q2p ze$oE=uKJ7o3Rn0QI#_OS^M7Dq<dmqtAuK+@<OaV;N9m6bOpL6eU}i_@j~_pZK|W}5 z<Z~2ZI4Hv8D9NnJ3C=*bSkrP6i?fSB!CnL^jv!tIrE_qEf};xT;v!X$AK|h2i^C>2 zKczG$)vic~fq?;(`HLB=Cg-zi$+0l<ePDnSJnW2u9~j_-(Bu`Yva)=fjG`YHFbQyK F0RSMCK1cun delta 294 zcmdlYdYPMVIWI340|NttoAuq~$xIXZBp3}Qsv8J01~X`~zXVD6X)@koOs|?)a*u<R zfq_Ajv50kY6ypR&?#ZtiZMhzB^EP;X2C19O%KAr?n}LDh7JF(%YI12w>Mge9{M_8k zlF7nse&QfYZgD3Ur6!i7#+MeS78QvzFfj0Ku3(d7R0U}(;$vW7SjkYt!@$5$1Xj(F zoRgZE7oU<;B*nnMAU1g$yO*~ndl5Ux4%W1s#NzBCW{_e|5CJv<WF%N|kt9eAZqzRh yo80`A(wtPgA{hn-21W)3hT@pXMqFC_tc-jg7~q7!<SH&%J_c4sQIMc0*ew9S>On>T diff --git a/Lab2/database.db b/Lab2/database.db index 5d50e4d8eb86358998d1080012be4916b4a8829f..90122c90f888e039f3d560758c37b102b1d369e3 100644 GIT binary patch delta 236 zcmZojXh@hKEhx&sz`)Fa0PGWWj0Hs*^rB68`QI=w@r5(+h4UZWEGY1tm!&D4k$rPC zUm7EeCKH?Z<fHud98CO84E#I!n>Gt7l<_l}GEMf8Hx0F9<PaAXmlxNT^eWBCOm)xC z$V*GjP0aDh%*)O%$jnO*E=^5I%>v0eq~|7P=IABo=O$LA7L`;Y9KyiB#lXP8#D9)~ o{~Z5A{*9Xj6&CPMUZ<~MB*d)An4F)RiqOj>#H`JUW*)Lh0AJWSd;kCd delta 291 zcmZojXh@hKEhxyqz`zW}ObiSRY!h{i1qB)OqD^=i7#JA%zcBD0<UhDsP~bT)3;!F& ztj*DUX^bok3=GDTkMi4dG4p#d@bBbr<oDVvC}6|SWXe3bMc%aDjEO^%UsO`qRI((s zIHkBGwInsA1jI}$sVu5YPD-sxO-)HJPBAphP0Y;EOU}<VG%_|ZHMeBskQ5h{6gGzH zD@jR9E5_7|O)JQ?Fg($hot=?^fq{vC<7PpH1^koO=_?qaYGM*&Hs%C71XUbn1c(Lz DBS1=g diff --git a/Lab2/database.db-journal b/Lab2/database.db-journal new file mode 100644 index 0000000000000000000000000000000000000000..ba0f47b6b76fa79c14766425157136767b110c6d GIT binary patch literal 4616 zcmZQT0!upu&M+`AFf%YPF)%O)Ajym}hj9on@iH(lF!47r@bBbr8pi${_1b6%jE2By z2#kinXb6mkz-S1JhQMeDjE2By2#kinXb22&2$(W)h)ar!N@_|vAKsFi>Xu(rl9`vA zn3L*LnV;uYl$e*Cnw+1T>X4qBn3<!OoS&Omm0DC%Y01bTE-EfBt}W?Rnv<F8o}ZDI hmYSQG<CB?}onMfdmmXZ2nv$9Yl0(;u>|xNj4*=sgE;;}J literal 0 HcmV?d00001 diff --git a/Lab2/database_helper.py b/Lab2/database_helper.py index 66853cf..a4153f6 100644 --- a/Lab2/database_helper.py +++ b/Lab2/database_helper.py @@ -7,13 +7,20 @@ def get_db(): db = getattr(g, 'db', None) if db is None: db = g.db = sqlite3.connect(DATABASE_URI) - return db +def create_database(): + conn = sqlite3.connect('database.db') + cursor = conn.cursor() + with open('schema.sql', 'r') as file: + sql = file.read() + cursor.executescript(sql) + conn.commit() + conn.close() def create_user(email, password, firstname, familyname, gender, city, country): try: - get_db().execute("INSERT into USERS values(?, ?, ?, ?, ?, ?, ?);", [firstname, familyname, gender, city, country, email, password]); + get_db().execute("INSERT into USERS values(?, ?, ?, ?, ?, ?, ?);", [firstname, familyname, gender, city, country, email, password]) get_db().commit() return True except: @@ -25,3 +32,15 @@ def clean_db(): return True except: return False + +def authenticate(email, password): + try: + cursor = get_db().cursor() + cursor.execute("SELECT * FROM USERS WHERE EMAIL=? AND PASSWORD=?;", [email, password]) + user = cursor.fetchone() + if user: + return True + return False + except: + return False + \ No newline at end of file diff --git a/Lab2/server.py b/Lab2/server.py index 0f2b670..9e0bc2d 100644 --- a/Lab2/server.py +++ b/Lab2/server.py @@ -1,9 +1,13 @@ from flask import Flask, request, jsonify import database_helper +import random +import string app = Flask(__name__) +#database_helper.create_database() + @app.route("/", methods = ['GET']) def hello_world(): return "<p>Hello, Lab_2!</p>", 200 @@ -34,7 +38,19 @@ def sign_up(): else: return "test", 400 - +@app.route("/sign_in", methods = ['POST']) +def sign_in(): + data = request.get_json() + if('email' in data + and 'password' in data): + if not database_helper.authenticate(data['email'], data['password']): + return "", 401 + else : + token = generate_token() + print(token) + return token, 200 + else: + return "", 400 @app.route("/delete", methods = ['GET']) def delete(): @@ -45,6 +61,10 @@ def delete(): return "", 409 +def generate_token(): + characters = string.ascii_letters + string.digits + return ''.join(random.choices(characters, k=36)) + if __name__ == '__main__': app.debug = True app.run() -- GitLab