使用Django的OAuth2.0身份验证与Android使用Volley

时间:2016-06-23 10:06:45

标签: android python django oauth-2.0 android-volley

我正在创建一个Android应用程序,它将使用Django后端以及Django Rest Framework。我一直在阅读OAuth2文档,但我仍然在努力理解有关其身份验证的几个关键点。

这些是我正在努力解决的主要问题/事:

  • 在OAuth2中,我有机会创建'应用'。在这种情况下,'app'是否特定于我的Android应用程序(可能在将来我会为潜在的iOS应用程序创建一个不同的应用程序?)。

  • (Android)应用的所有用户是使用相同的令牌,还是每个用户都获得了个性化令牌?

  • 我正在使用Android的Volley库来处理网络问题。如何让Android应用程序“存储”所需的凭据?我会存储令牌,ID和秘密,还是只存储令牌?

如果值得注意,我不打算添加社交媒体登录(Facebook,Google等)我只需要使用用户名和密码登录。

如果这些问题看起来有点基本,我很抱歉,这是我的第一次体验,将是任何形式的身份验证。

谢谢

1 个答案:

答案 0 :(得分:3)

我将使用" app"意思是两件事:

  1. app,表示Oauth2应用,您将创建注册移动应用

  2. app,表示移动应用。

  3. 回答1:

    app基本上是一种使用client注册resource server(在本例中为您的移动应用)的方式(在这种情况下,您是Django后端) 。您可以采用两种方式,为Android和iOS应用创建两个单独的apps或一个app。除非您不打算为一个应用程序的用户提供更多特权或功能,否则我不会看到创建两个单独的apps的好处。

    回答2:

    每个用户都被授予不同的access token

    回答3:

    您必须以某种安全的方式在移动应用上存储client_idclient_secret。因为这将有助于您为用户获得access token。获取后,您还会存储access token,因为在进行经过身份验证的HTTP请求时需要它。

    有关Oauth2协议的更多信息,您可以阅读this answer和Oauth2 Protocol RFC

相关问题