Advertisement
Guest User

Untitled

a guest
Nov 6th, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1.  
  2.  
  3. def get_hashed_password(plain_text_password):
  4.  
  5. return bcrypt.hashpw(plain_text_password, bcrypt.gensalt())
  6.  
  7.  
  8. def check_password(plain_text_password, hashed_password):
  9.  
  10. return bcrypt.checkpw(plain_text_password, hashed_password)
  11.  
  12.  
  13. @app.route('/login')
  14. def login_form():
  15.  
  16. return render_template('login_page.html')
  17.  
  18.  
  19. @app.route('/login', methods=['POST'])
  20. def login_process():
  21.  
  22. # Users may use email OR username to log in
  23. username = request.form.get('login_id') #jhacks
  24. password = request.form.get('password') #jhacks
  25.  
  26. user = User.query.filter(User.email == username).first()
  27.  
  28. if not user:
  29. user = User.query.filter(User.username == username).first()
  30. print("User doesn't exist")
  31.  
  32. if user:
  33. if len(password) > 8 & len(password) < 17:
  34. check_pw = check_password(password, user.password)
  35. # if password = hashed_password
  36. if check_pw:
  37. # if user.password == password:
  38. print("Password matches username!")
  39. flash("You are now logged in!")
  40. session['user_id'] = user.user_id # saves to session
  41. # return redirect('/users/{}'.format(user.user_id))
  42. return redirect('/users/my_page')
  43. # Redirect here instead for personal feed
  44. # elif user.password == None:
  45. # return redirect('/')
  46.  
  47. else:
  48. print("Please enter a password between 8-16 characters!")
  49. return redirect('/')
  50. # This happens when username typed, password blank
  51.  
  52. else:
  53. print("User not found! Please try again, or register.")
  54. return redirect('/')
  55.  
  56.  
  57. @app.route('/register', methods=['GET'])
  58. def registration_form():
  59.  
  60. return render_template('register_page.html')
  61.  
  62. @app.route('/register', methods=['POST'])
  63. def registration_process():
  64.  
  65. username = request.form.get('reg_username')
  66. email = request.form.get('reg_email')
  67. password = request.form.get('reg_pw')
  68. hashed_pw = get_hashed_password(password)
  69. regex_email = re.findall(r'[^@]+@[^@]+\.[^@]+', email)
  70. #doesn't handle the case of spaces
  71.  
  72. # check to make sure user doesn't already exist before
  73. # allowing new entry to be made in DB
  74.  
  75. regex_username = re.match("^[a-zA-Z0-9_.-]+$", username)
  76. # must be alphanumeric
  77. # Returns none if strange characters entered or space in name
  78. # Returns match object if matching string
  79.  
  80. # if regex_username == None: # if it's something
  81.  
  82. # if len(password) > 8 & len(password) < 17:
  83. # valid_password = password
  84.  
  85. fname = request.form.get('reg_fname')
  86. lname = request.form.get('reg_lname')
  87.  
  88. # Check that user var matches an entry in db
  89. user = User.query.filter(User.email == email).first()
  90.  
  91. if user == None: # If user doesn't exist in db
  92. # if regex_email: # if regex_username is valid
  93. # Add user to db
  94. print("User added!")
  95. flash("User added!")
  96. print(regex_username) # evaluated to none when "sdfosdijf e9" entered
  97. if regex_username is not None:
  98. print("REGEX USERNAME: ")
  99. print(regex_username)
  100. print("Username alphanumeric!")
  101. flash("Username alphanumeric!")
  102. # make sure password also valid
  103. # if username.isalnum() == True:
  104. print("REGEX EMAIL: ")
  105. print(regex_email)
  106. if regex_email is not None:
  107. print("Regex'd email is valid!")
  108. # user = User(username=username, password=hashed_pw, email=email, fname=fname, lname=lname)
  109. user = User(username=username, password=hashed_pw, email=email, fname=fname, lname=lname)
  110. db.session.add(user)
  111. db.session.commit()
  112. session['user_id'] = user.user_id
  113.  
  114. else:
  115. print("One or more fields are invalid! Please try again.")
  116. return redirect('/register')
  117. else: # user already exists in db
  118. print("This user already exists! Please log in.")
  119. flash("This user already exists! Please log in.")
  120.  
  121. flash("You are now registered! Please enjoy all of our features.")
  122. return redirect('/')
  123.  
  124.  
  125. @app.route('/logout')
  126. def logout_process():
  127. """Logs user out from website"""
  128. del session['user_id']
  129. return redirect('/')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement