Tokens
为确保一切正常,请通过可浏览的 API 端点创建第三个用户帐户。 我已经将我的用户称为 testuser2 。 然后点击“ POST”按钮。

下一个屏幕显示来自服务器的 HTTP 响应。 我们的用户注册 POST 成功,因此在顶部创建了状态代码 HTTP 201。 返回值密钥是此新用户的身份验证令牌。

如果您查看命令行控制台,那么 django-allauth 将自动生成一封电子邮件。 可以更新此默认文本,并添加具有 Django 初学者介绍的其他配置的电子邮件 SMTP 服务器。
在您的网络浏览器中,通过 http://127.0.0.1:8000/admin/
切换到 Django admin。 您将需要使用您的超级用户帐户。
然后,单击页面顶部的令牌链接。

您将被重定向到位于以下位置的令牌页面:
http://127.0.0.1:8000/admin/authtoken/token/
。

Django REST 框架已为 testuser2 用户生成了一个令牌。 通过 API 创建其他用户时,其令牌也将显示在此处。
逻辑上的问题是,为什么我们的超级用户帐户或测试用户没有令牌? 答案是我们在添加令牌认证之前创建了这些帐户。 但是不用担心,一旦我们通过 API 使用任一帐户登录,令牌就会自动添加并可用。
继续,让我们使用我们的新 testuser2 帐户登录。 打开 Web 浏览器,访问 http://127.0.0.1:8000/api/v1/rest-auth/login/
。
输入我们的 testuser2 帐户的信息。 点击“ POST”按钮。

发生了两件事。 在右上角,我们的用户帐户 testuser2 可见,确认我们现在已登录。服务器还发送了带有令牌的 HTTP 响应。

在我们的前端框架中,我们需要在本地存储中或以 cookie 的形式在客户端上捕获并存储此令牌。 然后配置我们的应用程序,以便所有将来的请求都在标头中包含令牌,以作为认证用户的一种方式。
总结
首次使用 Web API 时,用户身份验证是最难掌握的领域之一。 没有整体结构的好处,作为开发人员,我们必须深入了解并适当配置我们的 HTTP 请求/响应周期。
Django REST Framework 对此过程提供了很多内置支持,包括内置 TokenAuthentication。 但是,开发人员必须自己配置其他区域,例如用户注册和专用的 url/ 视图。 因此,一种流行,强大且安全的方法是依靠第三方软件包 django-rest-auth 和 django-allauth 来最大程度地减少必须从头开始编写的代码量。