INNER CODE UNIT · Python
login
kingname/SourceCodeofMongoRedis · chapter_11/QASystem/main.py:22
def login():
if request.method == 'GET':
return render_template('login.html')
else:
body = request.json
user = body.get('user', '')
password = body.get('password', '')
if not all([user, password]):
return json.dumps({'success': False, 'reason': '用户名和密码不能同时为空!'}, ensure_ascii=False)
user_info = mongo.get_user_info(user)
if not user_info['success']:
return json.dumps(user_info)
password_hash = user_info['password_hash']
if not check_password_hash(password_hash, password):
return json.dumps({'success': False, 'reason': '用户名与密码不匹配!'})
session_id, session_data = generate_session(str(user_info['user_info']['_id']), user)
response = make_response(json.dumps({'success': True}))
response.set_cookie('session', value=session_id)