我想开发一个带有REST Web服务的java应用程序,因为它将拥有浏览器客户端和移动客户端。我关心的是会话管理,有人可以建议我管理会话的最佳和推荐方法是什么。场景:员工将登录,然后他将呼叫其他服务,如工资详细信息,工作时间详细信息,永久地址等。此处所有这些详细信息将作为单独的REST Web服务公开。员工登录后,任何进一步的请求,如请求查看永久地址将是REST服务调用。请提供最好的和推荐的解决方案。
答案 0 :(得分:0)
在您想要支持移动设备和Web应用程序的场景中,基于令牌的身份验证和会话处理可以是您可以遵循的好方法。
您可以使用现有的基于令牌的第三方API(OAuth2),也可以创建自己的基于令牌的会话管理系统。
建议的解决方案:
每当您的应用程序首次点击时,创建并保存随机令牌(比如64位随机生成的字符串)。
移动和Web应用程序会将此令牌保存在其内存中,并在每次进行Web服务调用时将此令牌发送到标头中。
只有在令牌有效时,您才需要一个Web服务,它将接受您的所有请求并将请求重定向到您的应用程序。如果令牌无效,则拒绝访问应用服务。 (Gateway7以相同的方式工作)
您可以为每个网络服务网址传递密钥。说app.xyz是我的标识符。哪个指向我的应用程序'app'的xyz url。因此,您的网址将保留在服务器上,客户端只会有标识符,而您的令牌验证程序应用程序的一个网址会显示“令牌处理程序”。
因此,在“令牌处理程序”应用程序中,您可以设置会话时间。这将是您的令牌有效的时间。因此,如果您在15分钟内没有从该特定用户那里获得任何打击,那么您将其标记为下一个请求的无效令牌。
如果您需要任何其他帮助,请告诉我们我们可以进行讨论。