forked from mrlan/EnglishPal
Fix bug 574
parent
84e0fc51f7
commit
109a9447a7
|
@ -1,7 +1,7 @@
|
||||||
from flask import *
|
from flask import *
|
||||||
from markupsafe import escape
|
from markupsafe import escape
|
||||||
from Login import check_username_availability, verify_user, add_user, get_expiry_date, change_password, WarningMessage
|
from Login import check_username_availability, verify_user, add_user, get_expiry_date, change_password, WarningMessage
|
||||||
|
from model import deactivate_user
|
||||||
|
|
||||||
# 初始化蓝图
|
# 初始化蓝图
|
||||||
accountService = Blueprint("accountService", __name__)
|
accountService = Blueprint("accountService", __name__)
|
||||||
|
@ -44,7 +44,6 @@ def signup():
|
||||||
return jsonify({'status': '1'})
|
return jsonify({'status': '1'})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@accountService.route("/login", methods=['GET', 'POST'])
|
@accountService.route("/login", methods=['GET', 'POST'])
|
||||||
def login():
|
def login():
|
||||||
'''
|
'''
|
||||||
|
@ -60,17 +59,42 @@ def login():
|
||||||
username = escape(request.form['username'])
|
username = escape(request.form['username'])
|
||||||
password = escape(request.form['password'])
|
password = escape(request.form['password'])
|
||||||
verified = verify_user(username, password)
|
verified = verify_user(username, password)
|
||||||
if verified:
|
with open('black.txt', 'a+') as f:
|
||||||
# 登录成功,写入session
|
f.seek(0)
|
||||||
session['logged_in'] = True
|
lines = f.readlines()
|
||||||
session[username] = username
|
line=[]
|
||||||
session['username'] = username
|
for i in lines:
|
||||||
user_expiry_date = get_expiry_date(username)
|
line.append(i.strip('\n'))
|
||||||
session['expiry_date'] = user_expiry_date
|
#读black.txt文件判断用户是否在黑名单中
|
||||||
session['visited_articles'] = None
|
if verified and username not in line:
|
||||||
return jsonify({'status': '1'})
|
# 登录成功,写入session
|
||||||
else:
|
session['logged_in'] = True
|
||||||
return jsonify({'status': '0'})
|
session[username] = username
|
||||||
|
session['username'] = username
|
||||||
|
user_expiry_date = get_expiry_date(username)
|
||||||
|
session['expiry_date'] = user_expiry_date
|
||||||
|
session['visited_articles'] = None
|
||||||
|
f.close()
|
||||||
|
return jsonify({'status': '1'})
|
||||||
|
elif verified==0 and password!='黑名单':
|
||||||
|
#输入错误密码次数小于5次
|
||||||
|
return jsonify({'status': '0'})
|
||||||
|
else:
|
||||||
|
#输入错误密码次数达到5次
|
||||||
|
with open('black.txt', 'a+') as f:
|
||||||
|
f.seek(0)
|
||||||
|
lines = f.readlines()
|
||||||
|
line = []
|
||||||
|
for i in lines:
|
||||||
|
line.append(i.strip('\n'))
|
||||||
|
if username in line:
|
||||||
|
return jsonify({'status': '5'})
|
||||||
|
else:
|
||||||
|
f.write(username)
|
||||||
|
f.write('\n')
|
||||||
|
return jsonify({'status': '5'})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@accountService.route("/logout", methods=['GET', 'POST'])
|
@accountService.route("/logout", methods=['GET', 'POST'])
|
||||||
|
@ -84,6 +108,7 @@ def logout():
|
||||||
return redirect(url_for('mainpage'))
|
return redirect(url_for('mainpage'))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@accountService.route("/reset", methods=['GET', 'POST'])
|
@accountService.route("/reset", methods=['GET', 'POST'])
|
||||||
def reset():
|
def reset():
|
||||||
'''
|
'''
|
||||||
|
@ -109,3 +134,4 @@ def reset():
|
||||||
return jsonify({'status':'1'}) # 修改成功
|
return jsonify({'status':'1'}) # 修改成功
|
||||||
else:
|
else:
|
||||||
return jsonify({'status':'2'}) # 修改失败
|
return jsonify({'status':'2'}) # 修改失败
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
hsy
|
|
@ -8,7 +8,27 @@
|
||||||
<link rel="stylesheet" href="static/css/login_service.css">
|
<link rel="stylesheet" href="static/css/login_service.css">
|
||||||
<script src="static/js/jquery.js"></script>
|
<script src="static/js/jquery.js"></script>
|
||||||
<script>
|
<script>
|
||||||
function login(){
|
let blackList = [];
|
||||||
|
|
||||||
|
<!--function getBlack() {-->
|
||||||
|
<!-- const fs = require('fs');-->
|
||||||
|
<!-- global.blackFile = fs.readFileSync('black', 'utf8');-->
|
||||||
|
<!-- const blackListTemp = blackFile.split('\n');-->
|
||||||
|
<!-- global.blackList = blackListTemp.map(line => line.trim()).filter(line => line !== '');-->
|
||||||
|
<!--}-->
|
||||||
|
|
||||||
|
function putUserIntoBlack(usernameTemp) {
|
||||||
|
|
||||||
|
blackList.push(usernameTemp);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ifUsernameInBlack(usernameTemp) {
|
||||||
|
return blackList.includes(usernameTemp);
|
||||||
|
}
|
||||||
|
|
||||||
|
count=0
|
||||||
|
function login()
|
||||||
|
{
|
||||||
let username = $("#username").val();
|
let username = $("#username").val();
|
||||||
let password = $("#password").val();
|
let password = $("#password").val();
|
||||||
if (username === "" || password === ""){
|
if (username === "" || password === ""){
|
||||||
|
@ -19,17 +39,56 @@
|
||||||
alert('输入不能包含空格!');
|
alert('输入不能包含空格!');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$.post(
|
|
||||||
"/login", {'username': username, 'password': password},
|
|
||||||
function (response) {
|
$.post
|
||||||
if (response.status === '0') {
|
(
|
||||||
alert('无法通过验证。');
|
"/login", {'username': username, 'password': password},
|
||||||
window.location.href = "/login";
|
|
||||||
} else if (response.status === '1') {
|
function (response)
|
||||||
window.location.href = "/"+username+"/userpage";
|
{
|
||||||
|
|
||||||
|
if(response.status === '5')
|
||||||
|
{
|
||||||
|
alert('已被加入黑名单,请联系管理员!');
|
||||||
}
|
}
|
||||||
}
|
else{
|
||||||
)
|
if(!ifUsernameInBlack(username))
|
||||||
|
{
|
||||||
|
if (response.status === '0')
|
||||||
|
{
|
||||||
|
if(count<5)
|
||||||
|
{
|
||||||
|
alert('无法通过验证。');
|
||||||
|
<!--window.location.href = "/login";-->
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<!--输入错误密码次数超过5次-->
|
||||||
|
alert('密码输入错误超过五次,已被加入黑名单!');
|
||||||
|
putUserIntoBlack(username);
|
||||||
|
console.log(ifUsernameInBlack(username));
|
||||||
|
response.status=5;
|
||||||
|
$("#password").val('黑名单');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (response.status === '1')
|
||||||
|
{
|
||||||
|
window.location.href = "/"+username+"/userpage";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(ifUsernameInBlack(username))
|
||||||
|
{
|
||||||
|
alert('已被加入黑名单!');
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue