我们应该对站点的所有用户使用 django 身份验证吗?

Should we use django authentication for all users of a site?

我刚开始使用 Django 开发一个书店网站,我有一个关于用户身份验证的问题。 我希望用户拥有钱包、购物车和其他帐户信息,例如个人资料图片、phone 号码、地址等,以购买书籍。

现在我面临着是改变用户模型本身,还是为每个用户模型创建一个配置文件模型并将其 link 到用户模型,或者创建一个单独的模型(换句话说, 身份验证系统),一切从零开始。

现在我已经开始构建一个单独的身份验证系统。一切都很顺利,直到我在模板上下文中发送和接收用户数据时遇到问题。

最后,总的来说,我想知道Django认证系统是否真的适合一个站点的所有用户?

如果默认的 Django User 模型不包含您需要的所有内容,您可以随时使用自己的模型对其进行扩展。 Django 文档在此处包含一些示例:https://docs.djangoproject.com/en/4.0/topics/auth/customizing/#extending-the-existing-user-model

通过扩展 User 模型,您可以向 User 模型添加其他字段 and/or 函数(例如,您可以添加图像、描述、年龄、关系状态、等)。

话虽如此,我真的推荐使用 Django 的身份验证后端。它经过充分测试且安全。

Django 是最经得起考验和经过充分测试的 'batteries-included' 框架之一,因此内置身份验证是完全可以接受的。 The Docs 有一个概述,以及如何扩展的指南。

您可以评估与身份验证相关的第 3 方包 here,并判断这些包是否适合您的电子商务用例。

关于您的用户模型,开始您的项目使用自定义用户模型(即在您第一次迁移之前)是被广泛认为的最佳做法。官方文档甚至说明了这一点,但是有些人仍然更喜欢 'old' 这样做的方式,即创建一个单独的 'one-to-one' 配置文件模型。

Here 是关于使用自定义用户模型开始项目的教程。 Here 是关于更改项目中期的。