对于使用不同后端堆栈开发的一组Web应用程序实施单点登录的最佳方法是什么,而不使用任何第三方服务而不将其删除。如何进行迁移?
答案 0 :(得分:1)
要进行单点登录,您必须拥有相同的数据库表,其中包含所有Web应用程序的用户名/密码
创建并部署一个Web服务,该服务具有两个参数username和password的登录方法。此方法对用户进行身份验证,并返回用户ID及其各自的角色和登录有效的时间。
如果用户第一次进行身份验证,则更新该用户的有效时间 用户将保持身份验证的数据库。例如10天后 现在
如果验证失败,登录方法应返回false
在每个Web应用程序中,在webservice可调用方法中,如果用户登录成功,则创建一个cookie,该cookie应在validupto上过期 时间通过Web服务返回。根据服务器的时区调整cookie时间
让我们猜测,用户是从web应用程序1验证的,并且创建的cookie在接下来的10天内不会过期 有效时间
- 醇>
相同的用户打开未登录Web应用程序2的Web应用程序2。在这里你必须检查是否找到了登录cookie,如果没有,请调用webservice,
webservice将检查用户的validupto是否超过当前时间 从db中,它将返回用户ID和他各自的角色,直接验证时间而不检查用户的凭据 所以在这里,将基于webservice的有效时间返回创建cookie
与Web应用程序1 cookie同时到期。因此,相同的用户将保持登录到Web应用程序1和2同时。
Cookie过期后,用户将从两个Web应用程序注销。
这样,您就可以使用任意数量的Web应用程序进行单点登录。
注意:确保在所有调用webservices的Web应用程序中都有相同的功能,并根据Web服务响应创建cookie。