Ptul2x5 commited on
Commit
87183f9
·
verified ·
1 Parent(s): 52cf086

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -57
app.py CHANGED
@@ -1,32 +1,13 @@
1
  import os
2
  import torch
3
- from datetime import timedelta
4
- from urllib.parse import urlparse
5
-
6
- from flask import (
7
- Flask, request, jsonify, render_template,
8
- redirect, url_for, flash, make_response, session
9
- )
10
- from flask_login import (
11
- LoginManager, login_user, logout_user,
12
- login_required, current_user
13
- )
14
  from transformers import AutoTokenizer
15
-
 
16
  from models import db, User, Feedback
17
  from forms import RegistrationForm, LoginForm
18
  from PhoBERTMultiTask import PhoBERTMultiTask
19
 
20
  app = Flask(__name__)
21
-
22
- app.config['WTF_CSRF_ENABLED'] = False # demo
23
- app.config['SESSION_COOKIE_SAMESITE'] = "None"
24
- app.config['SESSION_COOKIE_SECURE'] = True
25
- app.config['SESSION_COOKIE_HTTPONLY'] = True
26
- app.config['REMEMBER_COOKIE_SAMESITE'] = "None"
27
- app.config['REMEMBER_COOKIE_SECURE'] = True
28
- app.config['REMEMBER_COOKIE_HTTPONLY'] = True
29
-
30
  # Cấu hình
31
  app.config['SECRET_KEY'] = 'your-secret-key-change-this-in-production'
32
  # Sử dụng đường dẫn database phù hợp với Hugging Face Spaces
@@ -88,51 +69,30 @@ def register():
88
 
89
  return render_template('register.html', form=form)
90
 
91
- @app.route('/login', methods=['GET', 'POST'])
92
  def login():
 
 
 
93
  form = LoginForm()
94
  if form.validate_on_submit():
95
- user = User.query.filter_by(username=form.username.data.strip()).first()
96
  if user and user.check_password(form.password.data):
97
- # nhớ tài khoản 7 ngày (phù hợp demo)
98
- login_user(user, remember=True, duration=timedelta(days=7))
99
-
100
- flash("Đăng nhập thành công!", "success")
101
-
102
- # tôn trọng ?next= nhưng không cho open-redirect
103
- next_url = request.args.get('next')
104
- if next_url and urlparse(next_url).netloc == "":
105
- return redirect(next_url)
106
- return redirect(url_for('home'))
107
  else:
108
- flash("Tên đăng nhập hoặc mật khẩu không đúng.", "danger")
 
109
  return render_template('login.html', form=form)
110
 
111
- @app.route('/logout')
112
  @login_required
113
  def logout():
114
- logout_user() # xóa trạng thái đăng nhập trong Flask-Login
115
- session.clear() # xóa server-side session (nếu dùng)
116
-
117
- # tạo response redirect & xóa cookie phía trình duyệt
118
- resp = make_response(redirect(url_for('home')))
119
-
120
- session_cookie_name = app.config.get("SESSION_COOKIE_NAME", "session")
121
- remember_cookie_name = app.config.get("REMEMBER_COOKIE_NAME", "remember_token")
122
- cookie_domain = app.config.get("SESSION_COOKIE_DOMAIN", None)
123
-
124
- # Xóa cookie với đúng thuộc tính (Spaces cần SameSite=None + Secure)
125
- for key in (session_cookie_name, remember_cookie_name):
126
- resp.delete_cookie(
127
- key,
128
- path="/",
129
- domain=cookie_domain, # thường là None (mặc định)
130
- samesite="None",
131
- secure=True
132
- )
133
-
134
- flash("Đã đăng xuất thành công!", "success")
135
- return resp
136
 
137
  @app.route("/api/health", methods=["GET"])
138
  def health():
 
1
  import os
2
  import torch
 
 
 
 
 
 
 
 
 
 
 
3
  from transformers import AutoTokenizer
4
+ from flask import Flask, request, jsonify, render_template, redirect, url_for, flash
5
+ from flask_login import LoginManager, login_user, logout_user, login_required, current_user
6
  from models import db, User, Feedback
7
  from forms import RegistrationForm, LoginForm
8
  from PhoBERTMultiTask import PhoBERTMultiTask
9
 
10
  app = Flask(__name__)
 
 
 
 
 
 
 
 
 
11
  # Cấu hình
12
  app.config['SECRET_KEY'] = 'your-secret-key-change-this-in-production'
13
  # Sử dụng đường dẫn database phù hợp với Hugging Face Spaces
 
69
 
70
  return render_template('register.html', form=form)
71
 
72
+ @app.route("/login", methods=["GET", "POST"])
73
  def login():
74
+ if current_user.is_authenticated:
75
+ return redirect(url_for('home'))
76
+
77
  form = LoginForm()
78
  if form.validate_on_submit():
79
+ user = User.query.filter_by(username=form.username.data).first()
80
  if user and user.check_password(form.password.data):
81
+ login_user(user, remember=True)
82
+ flash('Đăng nhập thành công!', 'success')
83
+ next_page = request.args.get('next')
84
+ return redirect(next_page) if next_page else redirect(url_for('home'))
 
 
 
 
 
 
85
  else:
86
+ flash('Tên đăng nhập hoặc mật khẩu không đúng.', 'danger')
87
+
88
  return render_template('login.html', form=form)
89
 
90
+ @app.route("/logout")
91
  @login_required
92
  def logout():
93
+ logout_user()
94
+ flash('Đã đăng xuất thành công!', 'info')
95
+ return redirect(url_for('home'))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
 
97
  @app.route("/api/health", methods=["GET"])
98
  def health():