8

为初学者的问题道歉。

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

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

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

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

4

2 回答 2

4

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

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

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

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

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

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

于 2012-07-09T05:40:22.277 回答
0

我是DjangoDRF的新手,我可以使用一些帮助。我刚刚创建了一个 Note 应用程序,我正在考虑在我的项目中是否需要用户/作者/客户的第二个应用程序。我只希望用户能够登录,创建自己的笔记,并且笔记应该有一个(或多个)作者,以便我可以过滤用户数据。有帮助吗?

PS:我也是初学者,有需要可以联系。

于 2014-03-13T15:22:20.857 回答