我有义务使用中间件服务器(Kony Server)进行 Kony 应用程序(移动应用程序)与应用程序服务器(RESTful 服务)的通信。
服务上的身份验证是基于会话的,身份验证密钥在“POST /login”的标头中返回(实际上在 cookie 中:“Set-Cookie: session=thesupersecretkey”)。然后,每个服务方法都要求会话密钥出现在标头中以允许数据检索,否则返回 401。这就是服务的工作方式,我无法更改它。
问题
我可以在服务设计器中添加“会话”标头作为参数(例如,方法“GET /data”),在那里放置一个正确的值(我从其他地方获得,例如 Fiddler)并执行请求,我可以告诉中间件,在服务设计器中,从会话范围(中间件会话)中获取一个值,但是当执行“POST /login”时,我无法将该值放入会话中。
实际上,没有办法在中间件上获取和处理响应头。我可以在响应处理代码中检索标头,但我无法将该值保存在中间件会话中,因此无济于事。
可能的解决方案
我可以通过编程方式获取 cookie,将其保存在移动设备内存中,并在每次向服务发出请求时传递它。但我想知道这个限制是否还有其他解决方法?
感谢您的任何帮助!