def forgot_password(): suc_msg = "" err_msg = "" if request.method == 'POST': email = request.form.get("email") if check_email_used(email=email): token = randomToken.dumps(email, salt="reset_password") msg = Message('Đặt lại mật khẩu', sender='*****@*****.**', recipients=[email]) link = url_for('reset_password', token=token, email=email, _external=True) msg.body = 'Bạn đang tiến hành đặt lại mật khẩu, liên kết sẽ hết hạn sau 15 phút. ' \ 'Nhấn vào liên kết sau để đặt lại mật khẩu: {}'.format(link) mail.send(msg) suc_msg = "Thư yêu cầu đặt lại mật khẩu đã được gửi vào mail {}".format( email) else: err_msg = "Email này không tốn tại trên hệ thống" return render_template("forgot-password.html", err_msg=err_msg, suc_msg=suc_msg)
def reset_password(token, email): err_msg = "" try: e = randomToken.loads(token, salt='reset_password', max_age=3600) except SignatureExpired: return render_template('verify-expired.html') if request.method == 'POST': password = request.form.get("password") confirm = request.form.get("confirm") if (len(password) > 7) and (len(password) < 17): if password.strip() == confirm.strip(): user = check_email_used(email=email) if user: user.password = str( hashlib.md5( password.strip().encode("utf-8")).hexdigest()) db.session.commit() return render_template('reset-success.html') else: err_msg = "Email không tồn tại" else: err_msg = "Mật khẩu không khớp!" else: err_msg = "Mật khẩu của bạn phải từ 8-16 ký tự" return render_template('reset-pwd.html', err_msg=err_msg)
def login_usr(): suc_msg = "" err_msg = "" if request.method == "POST": confirm = request.form.get("confirm") email = request.form.get("email") if confirm and email: err_msg = "" if request.method == "POST": name = request.form.get("name") username = request.form.get("username") password = request.form.get("password", "") if check_username_used(username=username): err_msg = "Tài khoản này đã có người sử dụng" else: if check_email_used(email=email): err_msg = "Email này đã được sử dụng" else: if (len(password) > 7) and (len(password) < 17): if password.strip() != confirm.strip(): err_msg = "Mật khẩu không khớp" else: if add_user(name=name, username=username, password=password, email=email): token = randomToken.dumps( email, salt="email_confirm") msg = Message( 'Thư xác nhận mail', sender='*****@*****.**', recipients=[email]) link = url_for('confirm_email', token=token, username=username, _external=True) msg.body = 'Để kích hoạt tài khoản vui lòng nhấn vào liên kết sau: {}'.format( link) mail.send(msg) suc_msg = "Thư kích hoạt đã được gửi vào mail {}".format( email) else: err_msg = "Hệ thống bị lỗi vui lòng đăng ký sau" else: err_msg = "Mật khẩu của bạn phải từ 8-16 ký tự" else: username = request.form.get("username") password = request.form.get("password", "") user = check_password(username=username, password=password) if user: if user.active == 1: login_user(user=user) return redirect('/') else: err_msg = "Tài khoản này chưa được xác thực" else: err_msg = "Bạn đã nhập sai mật khẩu" return render_template('login.html', err_msg=err_msg, suc_msg=suc_msg)