我有一个名为Customers(username,password .. etc)的模型,还有一个名为User(username,password ...等)的模型。
我想用不同的身份验证创建两个不同的API。
一个应使用用户名,密码
进行身份验证,第二个应使用客户用户名,密码进行身份验证。
任何想法,我该如何做到这一点?
谢谢!自定义Django身份验证
1
A
回答
0
我建议您使用django.contrib.auth.user
类作为您的经典认证。您可以从任一类继承或添加OneToOne关系到自己的模型如下
from django.contrib.auth.models import User
class YourUser(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
对于你的问题,你应该多增加一些细节,甚至你的一些代码块的其余部分。
2
我建议以下选项:
1.
我假设用户模式是您的应用程序的“真实”的用户。如果这是真的,请使用django的默认用户模型类。它将开箱即用。
对于Customer模型,使其从AbstractBaseUser继承,这将为您提供开箱即用的密码功能,您可以根据需要添加其他字段。
现在您可以创建2个不同的登录网址。 1用户的网址,用于检查用户模型,另一个用于客户模型。这避免了每个人的困惑。
如果您更喜欢单个网址,则必须提及模型类以及用户名和密码,以了解要在哪个表中验证它们。
2.
创建两个剖面模型:用户配置和CustomerProfile
每个将与Django默认的用户模型中的一对一的关系。
基本上用户可以拥有“真实”用户或客户的配置文件。
在这种情况下,当您创建任何用户时,您将检查是否要附加UserProfile或CustomerProfile。
在这种情况下,只使用一个登录URL是有意义的。从用户的登录信息中,您可以首先从User表中获取用户,然后通过在CustomerProfile表中运行查询来检查它是否为客户。
相关问题
- 1. Django自定义身份验证
- 2. Django OAuth自定义身份验证类
- 3. 自定义身份验证以形成身份验证
- 4. 重定向自定义AuthenticationForm一旦通过身份验证 - Django
- 5. Symfony2自定义身份验证方法
- 6. Firebase的自定义身份验证
- 7. 设计或自定义身份验证
- 8. 自定义身份验证问题
- 9. weblogic 10.3自定义身份验证器
- 10. 自定义身份验证:Odata服务
- 11. 自定义身份验证SL4 WCF RIA
- 12. 自定义身份验证未授权
- 13. 自定义窗体身份验证MVC?
- 14. ASP.Net MVC自定义身份验证
- 15. MVC中的自定义身份验证
- 16. Laravel 5.2自定义身份验证
- 17. MediaWiki自定义身份验证要求
- 18. 实现自定义身份验证(MVC5)
- 19. 自定义Windows身份验证包
- 20. loopback如何自定义身份验证
- 21. 自定义身份验证asp.net MVC
- 22. PHP自定义身份验证方法
- 23. MVC 5自定义身份验证
- 24. create_superuser自定义身份验证模型
- 25. ASP.NET自定义Windows身份验证
- 26. Firebase自定义OAuth身份验证
- 27. Laravel身份验证自定义规则
- 28. Google Appengine自定义身份验证
- 29. Django - 身份验证
- 30. Windows身份验证自定义验证(来自数据库)