La validation de flask/python pour la connexion ne fonctionne pas pour moi avec mysql, je cherchais google et documentations et j'ai vu quelques questions sur stack-overflow sur la même chose mais n'ont pas encore reçu de réponse.comment valider les informations d'identification dans flask/python avec mysql?
from flask import Flask, render_template, flash, request, url_for, redirect, session
from content_management import Content
#form validations
from wtforms import Form, BooleanField, TextField, PasswordField, validators
#to encrypt the password
from passlib.hash import sha256_crypt
#for SQL injection
from MySQLdb import escape_string as thwart
import gc
from functools import wraps
from mysql_connect import connection
app = Flask(__name__)
@app.route('/login/', methods=['GET','POST'])
def login_page():
error = ''
try:
c, conn = connection()
if request.method == "POST":
d = c.execute("SELECT * FROM clients WHERE email = (%s)", (thwart(request.form['email']),))
d = c.fetchone()[2]
if request.form['password'] == d:
email = request.form['email']
c.execute("SELECT * FROM clients WHERE email = (%s)", (thwart(email),))
clients_table = c.fetchall()
clientcid = clients_table[0]
flash(clientcid)
phone = clients_table[1]
rating = clients_table[4]
conn.commit()
c.execute("SELECT * FROM cpersonals WHERE cid = (%s)", (clientcid,))
cpersonals_table = c.fetchall()
first_name = cpersonals_table[1]
last_name = cpersonals_table[2]
address = cpersonals_table[3]
czip = cpersonals_table[4]
reg_date = cpersonals_table[5]
conn.commit()
c.close()
conn.close()
session['logged_in'] = 'client'
session['clientcid'] = clientcid
session['email'] = email
session['phone'] = phone
session['rating'] = rating
session['first_name'] = first_name
session['last_name'] = last_name
session['address'] = address
session['czip'] = czip
session['reg_date'] = reg_date
flash("You are now logged in.")
return redirect(url_for("dashborad"))
else:
error = "Invalid credentials, try again."
return render_template("login.html")
est-il un moyen facile de valider les informations d'identification dans MySQL sans cadres
Je vois que vous avez enregistré le mot de passe dans la base de données, s'il vous plaît enregistrer les hachages de mot de passe. 'à partir de werkzeug.security import generate_password_hash, check_password_hash'. – Ejaz