login.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # This is only a module to make the login process faster and easier. Don't care about it unless you also wants a simple login for your app
  2. import hashlib as hl
  3. from flask_login import (
  4. LoginManager,
  5. UserMixin,
  6. login_user,
  7. logout_user,
  8. login_required,
  9. current_user,
  10. )
  11. def initLogin(app, db):
  12. # Create the User clasis
  13. class User(UserMixin, db.Model):
  14. id = db.Column(db.Integer, primary_key=True)
  15. username = db.Column(db.Text, unique=True)
  16. password = db.Column(db.Text)
  17. def __init__(self, username, password):
  18. self.username = username
  19. self.password = password
  20. # Configure login
  21. login_manager = LoginManager()
  22. login_manager.init_app(app)
  23. @login_manager.user_loader
  24. def load_user(user_id):
  25. return User.query.get(int(user_id))
  26. return User
  27. def loginUser(username, password, User):
  28. # Hash the username and the password
  29. # username = hl.md5(bytes(username, 'utf-8')).hexdigest()
  30. password = hl.md5(bytes(password, "utf-8")).hexdigest()
  31. # Check if it exists
  32. user = User.query.filter_by(username=username, password=password).first_or_404()
  33. login_user(user)
  34. return True
  35. def createUser(username, password, db, User):
  36. # hash the username and the password
  37. # username = hl.md5(bytes(username, 'utf-8')).hexdigest() # Comment this is you want a clear username
  38. password = hl.md5(bytes(password, "utf-8")).hexdigest()
  39. # Send them to db
  40. user = User(username, password)
  41. db.session.add(user)
  42. db.session.commit()
  43. # Login the user
  44. login_user(user)
  45. # return success
  46. return True
  47. def getUsername():
  48. return current_user.username
  49. # To restrict a page to a user just add @login_required
  50. # To logout just do logout_user()
  51. # To get the current username do current_user.username