【问题标题】:flask multi user authentication with multiple table具有多个表的烧瓶多用户身份验证
【发布时间】:2017-05-25 21:56:32
【问题描述】:

我需要你的帮助, 我的模型文件中有 3 个不同类型的用户(管理员、客户、公司)的 3 个表,每个用户都可以有一个电子邮件和密码进行身份验证。问题是,当用户在 2 个表中创建计数时,例如客户和公司,使用相同的电子邮件,程序会混淆计数并给出错误:

 - class Admin(UserMixin, db.Model):   
 - class Client(UserMixin, db.Model): 
 - class Company(UserMixin, db.Model):

你对这个问题有什么想法吗?

【问题讨论】:

标签: python flask flask-wtforms flask-login multi-user


【解决方案1】:

好的,这是您的数据库的设计缺陷。不同类型的用户不应该存放在不同的地方。

您需要定义一个模型,其中用户类型在数据库中定义。然后,您可以在模型类中创建方法来评估用户类并决定如何处理它。

例子:

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

【讨论】:

  • 我有类似的问题,但只有一种用户类型应该有其他表的外键,我该怎么做?继承?
猜你喜欢
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 2016-07-17
  • 2019-03-23
  • 2020-02-09
  • 2020-07-12
相关资源
最近更新 更多