25 lines
No EOL
894 B
Python
25 lines
No EOL
894 B
Python
from models import db, bcrypt
|
|
|
|
class User(db.Model):
|
|
__tablename__ = 'users'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
username = db.Column(db.String(80), unique=True, nullable=False)
|
|
password_hash = db.Column(db.String(128), nullable=False)
|
|
|
|
@staticmethod
|
|
def create_user(username, password):
|
|
"""Create a new user with a hashed password"""
|
|
password_hash = bcrypt.generate_password_hash(password).decode('utf-8')
|
|
new_user = User(username=username, password_hash=password_hash)
|
|
db.session.add(new_user)
|
|
db.session.commit()
|
|
return new_user
|
|
|
|
@staticmethod
|
|
def verify_user(username, password):
|
|
"""Verify user creds"""
|
|
user = User.query.filter_by(username=username).first()
|
|
if user and bcrypt.check_password_hash(user.password_hash, password):
|
|
return user
|
|
return None |