ben*_*nto 8 authentication django rest tastypie
为初学者问题道歉.
关于将RESTful服务与不同用户结合使用的一般方法,我有点困惑.特别是,我主要关注的是开发一个API,我只会通过我编写的各种应用程序,即Web应用程序,以及可能会访问相同数据的一些移动应用程序.
(1)由django-tastypie之类的东西产生的休息API是否适合非公开使用(即,当我只想通过我的应用程序授予对这些数据的访问权限时)?
(2)在创建Restful API的登录访问权限时,我是否为我的网络应用程序的所有用户创建了一个登录名 - 或者我是否为自己和我的Web应用程序创建了一个登录名?我的webapp用户帐户是否应被视为与访问Restful API的帐户不同?
基本上,我想使用Django和django-tastypie创建一个应用程序,它允许用户登录,创建和查看对象,订阅用户并查看他们的对象.我想将Tastypie API用于我自己的javascript目的,以便在我的视图中创建序列化和更新相关数据.这些用户帐户在哪里适合这张图片?谢谢!
如果我理解正确的话,您在这里处理两个单独的身份验证问题:(A) 访问 API - 仅您的网络/移动应用程序 (B) 通过 API 访问用户数据 - 对于通过您的网络/移动应用程序的用户
对于 (A),您可以仅使用密钥进行身份验证。因此,您的 Web 或移动前端将在每个 API 请求中发送该密钥,这将保证您仅接收来自您授权的客户端的请求。
如果您想对不同的应用程序使用不同的密钥,您可以创建一个简单的 django 模型来跟踪它们,并根据需要添加新密钥或撤销它们。
如果您在所有事情上都使用 SSL,那么您应该可以避免嗅探攻击来发现您的密钥。我认为这里最薄弱的一点是有人可能会对您的移动应用程序进行反向工程以找到密钥,因为您必须将密钥存储在应用程序中。
对于 (B),使用 django auth 系统。tastypie Basic 或 ApiKey身份验证器应允许您通过 API 登录用户,并根据他们的权限访问或创建数据。我想这就是你在第二个问题中问的问题?
如果您使用会话,我认为您不能对 (A) 和 (B) 使用相同的身份验证模型,因为您不能同时拥有两个活动会话。
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |