Android 登录应用程序并从服务器获取api请求的会话令牌

Android 登录应用程序并从服务器获取api请求的会话令牌,android,api,login,Android,Api,Login,有一个网站有很多用户。为了使用私人页面,用户必须使用用户名和密码登录 现在,我正在开发一款android应用程序,它通过API以原生方式显示网站内容,没有WebView或类似功能。工作流程如下所示: 应用程序已启动 应用程序检查会话密钥是否存在。 如果密钥存在,则询问网站API sessionkey是否有效且是否属于用户 =>如果是,允许使用该应用程序 如果不存在sessionkey,请询问username+passwort,询问API是否正确,并通过API=>allow app usage

有一个网站有很多用户。为了使用私人页面,用户必须使用用户名和密码登录

现在,我正在开发一款android应用程序,它通过API以原生方式显示网站内容,没有WebView或类似功能。工作流程如下所示:

  • 应用程序已启动
  • 应用程序检查会话密钥是否存在。
    • 如果密钥存在,则询问网站API sessionkey是否有效且是否属于用户 =>如果是,允许使用该应用程序
    • 如果不存在sessionkey,请询问username+passwort,询问API是否正确,并通过API=>allow app usage获取新的sessionkey
  • 用户点击例如“账户余额” ->API请求使用存储的sessionkey完成,并显示结果
  • 用户点击“支付”,填写一张表格,然后得到他的钱 ->API请求使用存储的sessionkey完成,并显示结果
现在,我正在寻找解决这个问题的最佳实践我不希望我的sessionkey被简单地劫持,我希望确保sessionkey真的属于这个用户。由于私人数据可以通过应用程序查看/修改,隐私非常重要

我看了oAuth,但我想这不是我需要的,因为我需要一个消费者密钥和消费者秘密,它对每个用户都是唯一的,我不能将它集成到应用程序中。我不希望有一个新的窗口/浏览器来输入用户名+密码,并像oAuth那样通过回调处理响应

有什么提示吗


非常感谢

有关http身份验证最佳实践的良好起点,请参阅本文:


.

如果要发送私人数据,需要使用HTTPS。这还将负责保护会话令牌等的安全。如果需要检查令牌属于哪个用户,自然需要在服务器端进行映射。大多数服务器端平台都会给您一个会话映射或类似的映射,由会话ID等键入,您可以在其中存储几乎任何内容,包括用户详细信息

你可以使用ShardReference。我将使用HTTPS,我忘了在上面提到这个。谢谢你的提示!