在 django drf 中,具有令牌的经过身份验证的用户可以访问其他用户数据吗?

in django drf can a authenticated user with token access other users data?

在 django drf 中,具有令牌的经过身份验证的用户可以访问其他用户的数据吗? 我知道它不应该但在我的应用程序中它没有发生。 为了进行测试,我在邮递员中使用了令牌,但当我看到使用一个用户令牌我可以通过更改 url 中的 PK 来访问任何其他用户数据时,我感到很惊讶。 当我在互联网上研究这个时,我找不到任何明确的答案。 可能是我错误地使用了令牌认证方法...

但我的主要问题是: 如果我有一个用户令牌,那么只需更改 url 中的 pk,我是否能够获取其他用户数据?如果是,如何避免?

(注意:我目前没有使用 HTTPS。) (这也是一个概念性问题,所以在得到答案后我可能需要问另一个关于我的代码错误的问题;我会的。但请提供答案)

没有。如果发生这种情况,则意味着您以错误的方式实施了身份验证。

确保将 authentication scheme 设置为 'rest_framework.authentication.TokenAuthentication'

并在您的 INSTALLED_APPS

中包含 'rest_framework.authtoken'

如果您发送用户数据的视图只有 class isAuthenticated 权限,那么这种行为是可以预料的。 你需要做的是实现另一个权限 isOwner 来检查请求数据的用户是否是它的所有者。