具有多个 table 的烧瓶多用户身份验证
flask multi user authentication with multiple table
我需要你的帮助,
我的模型文件中有 3 个表,包含 3 种不同类型的用户(管理员、客户、公司),每个用户都可以有一个电子邮件和密码进行身份验证。问题是,当用户在 2 个表中创建计数时,比如客户和公司,使用相同的电子邮件,程序会混淆计数并给出错误:
- class Admin(UserMixin, db.Model):
- class Client(UserMixin, db.Model):
- class Company(UserMixin, db.Model):
你知道这个问题吗?
好的,这是您数据库的设计缺陷。不同类型的用户不应该存放在不同的地方。
您需要定义一个模型,其中在数据库中定义了用户类型。然后,您可以在模型中创建方法 class 来评估用户 class 并决定如何对待它。
示例:
class User(db.Model):
id = db.Column(db.Integer, primary_key = True)
username = db.Column(db.String(200), unique = True)
password = db.Column(db.String(200))
userType = db.Column(db.String(20), default = 'user') #can be user, client, admin or whatever your options are
def isAdmin(self): #an example method - your admin view could use this method to check if a user should be given access
if self.userType == 'admin':
return True
else:
return False
我需要你的帮助, 我的模型文件中有 3 个表,包含 3 种不同类型的用户(管理员、客户、公司),每个用户都可以有一个电子邮件和密码进行身份验证。问题是,当用户在 2 个表中创建计数时,比如客户和公司,使用相同的电子邮件,程序会混淆计数并给出错误:
- class Admin(UserMixin, db.Model):
- class Client(UserMixin, db.Model):
- class Company(UserMixin, db.Model):
你知道这个问题吗?
好的,这是您数据库的设计缺陷。不同类型的用户不应该存放在不同的地方。
您需要定义一个模型,其中在数据库中定义了用户类型。然后,您可以在模型中创建方法 class 来评估用户 class 并决定如何对待它。
示例:
class User(db.Model):
id = db.Column(db.Integer, primary_key = True)
username = db.Column(db.String(200), unique = True)
password = db.Column(db.String(200))
userType = db.Column(db.String(20), default = 'user') #can be user, client, admin or whatever your options are
def isAdmin(self): #an example method - your admin view could use this method to check if a user should be given access
if self.userType == 'admin':
return True
else:
return False