Untitled
unknown
plain_text
a year ago
2.5 kB
6
Indexable
@app.route('/register', methods=['GET','POST']) def register(): if request.method == 'POST': username = request.form.get("username") password = request.form.get("password") repeat_password = request.form.get("passwordRepeat") existing_user = users_collection.find_one({"$or": [{"username": username}]}) if not username or not password or not repeat_password: flash('Fields cannot be empty', 'error') return redirect(url_for('register')) if existing_user: flash('Username already exists', 'error') return redirect(url_for('register')) if password != repeat_password: flash("Passwords don't match", 'error') return redirect(url_for('register')) hasher = hashlib.shake_256() hasher.update(password.encode("utf-8")) hashed_password = hasher.digest(32) timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") data = { "created": timestamp, "username": username, "password": hashed_password, "admin": 0, "tasks": 0 } users_collection.insert_one(data) flash('You have registered successfully', 'success') return redirect(url_for('login')) return render_template(register_template) @app.route('/login', methods=['POST','GET']) def login(): if request.method == 'POST': username = request.form.get('username') password = request.form.get('password') user = users_collection.find_one({"username": username}) if not username or not password: flash('Fields cannot be empty', 'error') return redirect(url_for('login')) if user: stored_password = user.get("password") hasher = hashlib.shake_256() hasher.update(password.encode('utf-8')) hashed_password = hasher.digest(32) if hashed_password == stored_password: session["username"] = user["username"] session["admin"] = user.get("admin", 0) return redirect(url_for('main')) else: flash('Incorrect password', 'error') return redirect(url_for('login')) else: flash("User doesn't exist", 'error') return redirect(url_for('login')) return render_template(login_template)
Editor is loading...
Leave a Comment