3

我是一名自学成才的后端工程师,所以我正在学习所有这些东西。很长一段时间以来,我一直在为我的用户使用基本身份验证。只要您拥有正确的用户名和密码,就可以访问所有 Tastypie API 资源。

许多开发人员建议不要使用这种方法,因为每个请求都包含用户名和密码。任何具有适当技能的人都可以监听我的 iOS 应用程序和我的 Django 服务器之间的连接并获取他们的密码。

我不想让我的用户的凭据处于危险之中,所以我想实施一种更安全的身份验证方式。我一直在做大量的阅读,并遇到了具有完整令牌方法的 OAuth 2.0。将用户名和密码发送到服务器的唯一时间是它们请求访问令牌时。

给出访问令牌后(每个用户将拥有一个唯一的访问令牌),该令牌用于身份验证,而不是用户名和密码。

这样,任何收听的人都只会看到令牌。如果令牌暴露,我可以轻松删除旧令牌并为用户生成新令牌。

除此之外,我想让它只有来自我的 iOS 应用程序的请求才能访问美味的资源。(我正在考虑为我的应用程序生成一个应用程序密钥,如果第三方服务想要使用该服务,我也会授予他们一个唯一的密钥)

如何在我的 Django 设置中实现这一点?我可以使用 OAuth2.0 来做到这一点吗?如果我实现了这个设置,我怎样才能让攻击者无法获取应用程序令牌?

4

1 回答 1

0

看看这个项目 - https://github.com/omab/python-social-auth

它是文档 - http://psa.matiasaguirre.net/docs/

这是一个很棒的实时项目,它与最新版本的 Django 保持同步。

它已将 Django 的社交身份验证与各种平台集成。

于 2013-10-27T12:37:31.163 回答