rework session handling
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
from flask import Flask, session, request, render_template
|
from flask import Flask, session, request, render_template, redirect, url_for
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from .models import Avatars, Users, PostHistory, Posts, MOTD, BadgeUploads, Sessions
|
from .models import Avatars, Users, PostHistory, Posts, MOTD, BadgeUploads, Sessions
|
||||||
from .auth import digest, is_logged_in, get_active_user
|
from .auth import digest, is_logged_in, get_active_user
|
||||||
@@ -230,9 +230,13 @@ def create_app():
|
|||||||
app.config['SESSION_COOKIE_SECURE'] = True
|
app.config['SESSION_COOKIE_SECURE'] = True
|
||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
def make_session_permanent():
|
def revoke_session():
|
||||||
if is_logged_in():
|
if is_logged_in():
|
||||||
session.permanent = True
|
sess = Sessions.find({'key': session['pyrom_session_key']})
|
||||||
|
if int(time.time()) > int(sess.expires_at):
|
||||||
|
sess.delete()
|
||||||
|
session.clear()
|
||||||
|
return redirect(url_for('topics.all_topics'))
|
||||||
|
|
||||||
commit = ''
|
commit = ''
|
||||||
with open('.git/refs/heads/main') as f:
|
with open('.git/refs/heads/main') as f:
|
||||||
|
|||||||
@@ -13,12 +13,15 @@ def log_in_page():
|
|||||||
def log_in_post():
|
def log_in_post():
|
||||||
user = Users.find({'username': request.form['username']})
|
user = Users.find({'username': request.form['username']})
|
||||||
if not user:
|
if not user:
|
||||||
return "no user"
|
return 'no user'
|
||||||
if not verify(user.password_hash, request.form['password']):
|
if not verify(user.password_hash, request.form['password']):
|
||||||
return "no"
|
return 'no'
|
||||||
|
|
||||||
sess = create_session(user.id)
|
sess = create_session(user.id)
|
||||||
session['pyrom_session_key'] = sess.key
|
session['pyrom_session_key'] = sess.key
|
||||||
|
session['remember'] = request.form.get('remember') == 'on'
|
||||||
|
if session['remember']:
|
||||||
|
session.permanent = True
|
||||||
return redirect(request.form['return_to'])
|
return redirect(request.form['return_to'])
|
||||||
|
|
||||||
@bp.get('/<username>')
|
@bp.get('/<username>')
|
||||||
|
|||||||
Reference in New Issue
Block a user