2

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

我的应用要做的第一件事是让用户使用他们的凭据登录。

  • 我的问题是我的 API 需要处理会话吗?或者我应该为每个请求对用户进行身份验证?
  • 原生 android 应用程序是否会在设备上保存用户凭据并在登录后为每个请求发送它们?
  • 我正在使用Retrofit. 用户登录后如何发送用户凭据?
4

1 回答 1

-1

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

于 2013-12-19T09:06:07.203 回答