繁体   English   中英

RESTful,用户身份验证和Django-tastypie

[英]RESTful, user authentication, and Django-tastypie

对于初学者的问题表示歉意。

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

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

(2)在创建对Restful API的登录访问时,我是为我的Web应用程序的所有用户创建登录名吗?还是我为自己和Web应用程序创建登录名? 是否应该将我的Webapp的用户帐户与访问Restful API的帐户区分开来?

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

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

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

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

如果您对所有内容都使用SSL,则应避免嗅探攻击以发现密钥。 我认为这里最弱的地方是有人可能会对您的移动应用程序进行反向工程以找到密钥,因为您必须将密钥存储在应用程序中。

对于(B),请使用django身份验证系统。 美味的Basic或ApiKey 身份验证器应允许您登录用户并通过API进行登录,并基于其权限来访问或创建数据。 我想这就是您在第二个问题中提出的问题?

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

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

PS:我也是初学者,因此如果您需要我们可以保持联系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM