【发布时间】:2015-04-23 05:39:23
【问题描述】:
我有以下用例,我需要一些解决方案的指针/提示/方法。
我必须为 android 应用程序创建一个登录屏幕,然后会有其他屏幕可以与托管在 Domino 上的服务器进行基于 REST 的调用。
现在对于登录活动,我认为基本身份验证似乎是最简单的解决方案(如果我错了,请纠正我)。服务器已经具有支持基于 Web 的应用程序的功能(基于会话的通信,浏览器使用 domino 自动处理)。
现在是问题部分
- 我不希望服务器更改其用于 android 的代码,因为服务器使用相同数据满足对 android 应用程序或基于 Web 的应用程序的请求。如何通过基本身份验证实现用户范围(即我可以知道后续操作是由刚刚通过 android 应用程序成功登录的同一用户完成的)。我怀疑 Domino 不允许您访问会话 ID 或 DOM 身份验证 ID,在基于 Web 的应用程序的情况下,浏览器本质上会传递这些 ID。如何从 android 应用程序实现此功能?
- 如果我使用基本身份验证并发送数据,然后我注意到如果我在第一次调用 PUT 期间设置了一些会话范围的变量,那么当我尝试从我的 android 应用程序的下一次 GET 调用中获取它时,我不会取回该值.我相信这两个电话之间的会话不再存在?
- 在基本身份验证的情况下,服务器是否需要在成功登录后的后续调用中做一些额外的事情?例如:使用 REST api 获取特定大学的学生列表,但为了检查用户是否有权访问此类操作服务器必须知道此用户访问权限,通常存储为会话信息在基于会话的身份验证过程中。
我了解在基本身份验证的情况下,我们会在每次调用服务器时传递用户 ID 和密码。我的主要问题是服务器如何处理这个用户名和密码?是否每次都会做某种检查来检查相关操作的用户权限?
谢谢
【问题讨论】:
-
这是一组非常广泛的问题——对于stackoverflow来说太宽泛了。我没有所有答案,但我认为您可以使用覆盖会话身份验证规则来解决问题 #1。有关详细信息,请参阅www-10.lotus.com/ldd/ddwiki.nsf/dx/…。关于问题2,请澄清问题。 REST 请求通常是无状态的,所以我不知道您所说的“某些会话范围的变量”是什么意思。什么会议?
标签: android rest session lotus-domino basic-authentication