我想在django中为iOS应用程序实现一个Web服务。 我需要某种身份验证,然后我用Google搜索并听到有关django token-api的好消息。
我唯一不理解的是,我如何确保一个经过身份验证的用户无法为另一个用户执行操作。
例如,如果我有一个具有@admand-required的视图,那只承诺已经发送了一个有效的令牌,但是有人可以只更改请求本身的PK并为另一个用户进行更改。
如何确保拥有令牌的用户只能为自己执行操作?
答案 0 :(得分:0)
在很广泛的层面上,您需要区分身份验证和授权。您可以阅读this page作为示例,或者将其谷歌搜索更多,但基本的区别是身份验证确定用户是他所说的人,而授权确定某个用户能够看到或做的事情。
如上所述,您可以使用django-token-api
来解决身份验证问题。但是,一旦您确定了这一点,就需要转移到授权。这更像是permissions的问题,您可以在每个用户(或每个组)的基础上查看单个对象,视图等。
正如Ambroise在评论中指出的那样,使用API框架可以使这更容易。 Here是用于在对用户进行身份验证后设置权限的django-rest-framework
文档。