我有一個名爲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身份驗證自定義驗證(來自數據庫)