Django rest api:使用多类型数据库进行用户身份验证



我需要开发Django rest API,可以访问多个数据库,还需要从多个数据库进行身份验证

user1-从数据库1用户表进行身份验证user2-从数据库2用户表进行身份验证

路由器URL ex-

http://examle.com/API/auth/{site1}/login-此路由应使用database1用户表用户名和密码http://example.com/API/auth/{site2(/login-此路由应使用database2用户表用户名和密码

我怎样才能完成这项任务?

有很多方法可以做到这一点,但我建议您对数据库中的每个表使用两个不同的模型,例如,我们称它们为User1和User2。

根据您在django应用程序中实现登录和用户模型的方式,您可以在应用程序中定义这两个模型,从django.contrib.auth.models.AbstractUser继承。(像这样的解决方案可能不太适合你,因为它想在数据库中创建一个外键到由django自己创建的auth_user表。这会给你带来麻烦,因为你使用了两个不同的表,我想继承模型并在自己的模型中有它的字段(这使得它的列在自己的表中(对您来说将是一个更好的解决方案。(

定义两个模型后,您需要连接到两个不同的数据库,并在应用程序中验证用户。为此,我建议您阅读django的这篇文章,该文章解释了如何连接到多个数据库以及如何路由它们(即何时连接每个数据库(

在你的应用程序中拥有两个模型并连接到它们之后,你只需要自定义你的身份验证。这取决于您是如何在上面提到的url和视图中实现登录和身份验证的。如果你只需要访问你的模型,并且你可以自己检查凭据,那么你已经完成了,因为你已经知道如何访问每个模型了。如果您使用django函数登录,我建议您阅读本文的这一部分,并自行实现任何自定义。

有关更多信息和细节,您需要提供有关如何实现身份验证的信息,但我想这将是另一个问题。

最新更新