Session login

2023. 12. 11. 11:07Flask

session은 server측에서 임시적으로 데이터를 저장하는 방법이다

이를 통하여 로그인을 구현 할 수 있는데 방법은 이와 같다

 

from flask import Blueprint, url_for, render_template, flash, request, session
from werkzeug.security import generate_password_hash, check_password_hash
from werkzeug.utils import redirect
from .form import login_form, coll

user_login = Blueprint("user_login", __name__, url_prefix="/login/user")


@user_login.route('/test1/', methods=('GET', 'POST'))
def login_test():
    form = login_form()
    if request.method == 'POST' and form.validate_on_submit():
        user = coll.find_one({"name":(form.name.data)})
        if not user:
            flash("id incorrect")
            return render_template('login/login.html', form=form)
        else:
            if not check_password_hash(user["password"], form.password.data):
                flash("password incorrect")
                return render_template('login/login.html', form=form)
            else:
                session.clear()
                session.permanent = True#session did not deleted by time
                session['name'] = str(user['_id'])
                return redirect(url_for('main.main_page'))
    return render_template('login/login.html', form=form)

 

cookie에 session id를 담아서 client측에 보내고

server는 그 session id를 session에 저장해둬 cookie에 담긴 session id가 들어 왔을 때 사용자를 판별 할 수 있다

'Flask' 카테고리의 다른 글

CSRF  (0) 2023.12.11
WebSocket  (0) 2023.12.11
MongoDB  (0) 2023.12.11
Route  (0) 2023.12.11
render_template  (0) 2023.12.10