有一个用户很多的网站。为了使用私有页面,用户必须使用用户名和密码登录。
现在我正在开发一个android应用程序,它通过api以本地方式显示网站内容,而不是webview或类似的方式。工作流程如下:
应用程序已启动
应用程序检查SessionKey是否存在。
如果密钥存在,询问网站api sessionkey是否有效并且属于用户
=>如果是,允许使用应用程序
如果不存在sessionkey,则请求username+passwort,询问api是否正确,并通过api=>allow app usage获取新的sessionkey
用户点击“账户余额”
->使用存储的sessionkey完成api请求并显示结果
用户点击“支付”,填写一张表格并得到他的钱
->使用存储的sessionkey完成api请求并显示结果
现在我正在寻找解决这个问题的最佳实践。我不想我的sessionkey被简单的劫持,我想确保sessionkey真的属于这个用户。由于隐私数据可以通过应用程序查看/修改,隐私非常重要。
我看了一下oauth,但这不是我所需要的,我想,因为我需要一个消费者密钥和消费者秘密,这对每个用户都是独一无二的,我无法将其集成到应用程序中。我不想有一个新的窗口/浏览器来输入用户名+密码,并像oauth那样通过回调来处理响应。
有什么线索吗?
谢谢!

最佳答案

有关http身份验证最佳实践的良好起点,请参阅本文:
"Principles for Standardized REST Authentication"

09-25 22:07