gpt4 book ai didi

django - RESTful、用户身份验证和 Django-tastypie

转载 作者:行者123 更新时间:2023-12-04 08:36:51 24 4
gpt4 key购买 nike

为初学者问题道歉。

我对结合不同用户使用 RESTful 服务的一般方法有点困惑。特别是,我主要关心的是开发一个只有我会在我编写的各种应用程序中使用的 API,即一个 Web 应用程序,可能还有一些将访问相同数据的移动应用程序。

(1) 由 django-tastypie 之类的东西生成的 rest API 是否适合(甚至最佳实践)供非公开使用——即,当我只想通过我的应用程序授予对这些数据的访问权限时?

(2) 在创建对 Restful API 的登录访问时,我是为我的 Web 应用程序的所有用户创建一个登录名——还是我为我自己和我的 Web 应用程序创建一个登录名?我的 webapp 的用户帐户是否应该被视为与访问 Restful API 的帐户不同?

基本上,我想使用 Django 和 django-tastypie 创建一个应用程序,它允许用户登录、创建和查看对象、订阅用户并查看他们的对象。我想将 Tastypie API 用于我自己的 javascript 目的,以便在我的 View 中创建序列化和更新相关数据。这些用户帐户在这张图片中的什么位置?谢谢!

最佳答案

如果我理解正确,您在这里处理两个单独的身份验证问题:
(A) 访问 API - 仅限您的网络/移动应用程序
(B) 通过 API 访问用户数据 - 对于通过您的网络/移动应用程序的用户

对于 (A),您可以仅使用 key 进行身份验证。因此,您的 Web 或移动前端将随每个 API 请求发送该 key ,这将保证您仅从您授权的客户端接收请求。

如果您想为不同的应用程序使用不同的 key ,您可以创建一个简单的 django 模型来跟踪它们,并根据需要添加新 key 或撤销它们。

如果您对所有事情都使用 SSL,那么您应该可以避免通过嗅探攻击来发现您的 key 。我认为这里最薄弱的一点是有人可以对您的移动应用程序进行逆向工程以找到 key ,因为您必须将 key 存储在应用程序中。

对于 (B),使用 django 身份验证系统。 Tastypie Basic 或 ApiKey Authenticators应该允许您通过 API 登录用户,并根据他们的权限访问或创建数据。我想这就是你在第二个问题中问的?

如果您使用 session ,我认为您不能对 (A) 和 (B) 使用相同的身份验证模型,因为您不能同时拥有两个事件 session 。

关于django - RESTful、用户身份验证和 Django-tastypie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10646427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com