def __init__(self, password, **kwargs): super(User, self).__init__(**kwargs) self.push_notifications = 1 self.email_notifications = 1 # Generate the random salt and then use this when hashing the password. self.password_salt = uuid.uuid4().__str__() self.password_hash = bcrypt.generate_password_hash( self.password_salt + password).decode('utf-8')
def add_user(): form = AddUserForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode('utf-8') user = Users(email=form.email.data, password=hashed_password, is_admin=form.is_admin.data) db.session.add(user) db.session.commit() flash(f'You have added the user {user.email}!', 'success') return redirect(url_for('home')) return render_template('user_add.html', form=form)
def register(): if current_user.is_authenticated: return redirect(url_for('home')) form = RegistrationForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode('utf-8') user = Users(email=form.email.data, password=hashed_password) db.session.add(user) db.session.commit() flash(f"Your account has been created! You are now able to login", 'success') return redirect(url_for('home')) return render_template('register.html', title='Register!', form=form)
def register(): req = request.json auth = request.authorization user = User.query.filter_by(username=req["username"]).first() if user: return make_response("Username already exists. Try again.", 400) entered_password_1 = req["password1"] entered_password_2 = req["password2"] if entered_password_1 == entered_password_2: new_user = User(username = req["username"],password = bcrypt.generate_password_hash(entered_password_1.encode("utf-8")).decode("utf-8")) db.session.add(new_user) db.session.commit() token = jwt.encode({'id': new_user.id, 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=60)}, os.getenv("SECRET")) return jsonify({'token' : token.decode("ascii")}) else: return make_response("Sorry, passwords must match", 400)
def _set_password(self, plaintext): self._password = bcrypt.generate_password_hash(plaintext)