如何验证Android应用程序的请求

时间:2013-12-18 16:51:25

标签: java android rest retrofit

我正在制作一个Android应用程序,它将从我的API中获取数据。

我的应用首先要做的是让用户使用他们的凭据登录。

  • 我的问题是我的API需要处理会话吗?或者我应该为每个请求验证用户身份吗?
  • 原生Android应用程序是否会在设备上保留用户凭据,并在登录后为每个请求发送这些凭据?
  • 我正在使用Retrofit。如何在用户登录后发送用户凭据?

1 个答案:

答案 0 :(得分:-1)

现在是深入了解并阅读OAuth的好时机。您的用例似乎完全匹配。您需要两个主要步骤:身份验证和授权。我在这里简要解释过:Authentication of a resource in Dropwizard。你可以忽略DropWizard部分,REST概念保持不变。简短版本的描述可能是这样的:用户在手机上安装您的应用程序。他们使用用户名和密码验证ONCE(通过SSL发送对REST的POST请求)。您的服务对用户进行身份验证,并返回一个“refresh_token”和一个“access_token”,当您在服务端映射并保存access_token / refresh_token时,应用程序将保存在其中。随着每个后续请求,您的应用程序将发送“access_token”作为“身份验证”标头的一部分,您将在服务器端解析并检查access_token是否仍处于活动状态(假设access_token过期)以及它是否处于活动状态,然后完成授权/身份验证过程。如果有任何机会,访问令牌已过期,401将返回到您的应用程序。应用程序必须使用“refresh_token”来获取新的access_token,并且一旦获得新的access_token批准(再次将服务器端映射到用户的身份)所有后续调用将使用新的access_token,直到它到期。这是OAuth的简单版本,并未遵循该字母的规范。这是一个非常基本的身份验证/授权流程,可帮助您入门。我希望这有帮助!