Guest User

Untitled

a guest
Aug 29th, 2018
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. # mongoengine class
  2. class User(DynamicDocument):
  3. date_created = DateTimeField(default=datetime.datetime.utcnow)
  4. username = StringField(unique=True)
  5. password = BinaryField(required=True)
  6. email = EmailField(unique=True)
  7. admin = BooleanField(default=False)
  8. data_sets = DictField()
  9.  
  10. # Hashing & password checking functions
  11. def hash_password(password):
  12. return bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())
  13.  
  14. def check_password(password_from_form, password_from_db):
  15. if bcrypt.checkpw(password_from_form.encode("utf-8"), password_from_db):
  16. return True
  17. else:
  18. return False
  19.  
  20. # Flask login route
  21. @app.route("/login", methods=["GET", "POST"])
  22. def login():
  23. if request.method == "POST":
  24. form_username = request.form["username"]
  25. form_password = request.form["password"]
  26. error = "Invalid credentials"
  27. user_attempt = User.objects(username__exact=form_username)
  28. if user_attempt:
  29. for user in user_attempt:
  30. if user.username == form_username:
  31. if check_password(password_from_db=user.password, password_from_form=form_password):
  32. session["LOGGED_IN"] = True
  33. return redirect(url_for("dashboard"))
  34. else:
  35. return render_template("frontend/login.html", toast=error)
  36. else:
  37. return render_template("frontend/login.html", toast=error)
  38. else:
  39. return render_template("frontend/login.html", toast=error)
  40. else:
  41. return render_template("frontend/login.html")
Add Comment
Please, Sign In to add comment