用户数据库

为了让给出的示例看起来像真实的项目,这里我将使用 Flask-SQLAlchemy 来构建用户数据库模型并且存储到数据库中。

用户的数据库模型是十分简单的。对于每一个用户,username 和 password_hash 将会被存储:

  1. class User(db.Model):
  2. __tablename__ = 'users'
  3. id = db.Column(db.Integer, primary_key = True)
  4. username = db.Column(db.String(32), index = True)
  5. password_hash = db.Column(db.String(128))

出于安全原因,用户的原始密码将不被存储,密码在注册时被散列后存储到数据库中。使用散列密码的话,如果用户数据库不小心落入恶意攻击者的手里,他们也很难从散列中解析到真实的密码。

密码 决不能 很明确地存储在用户数据库中。