老系统向新技术迁移的一大障碍是用户认证系统。由于用户密码和认证方式的不同,我们经常无法将现有数据库中的用户数据完整迁移到新的数据库。经常是需要将新系统中的用户密码保持为空,当用户再次登录时需要重新设置密码。但不是所有的客户都同意这种操作。如果我们知道老系统的登录算法,可以在登录时,创建或者重置在新系统中的用户密码。操作过程如下:
- 将老系统的用户数据复制到新系统的用户数据库,密码保持为空
- 在新系统中编写老系统用户的认证插件,可以返回用户是否认证成功,以及用户的基本信息
- 当用户登录新系统时,首先查看在新系统是否有密码,如果有,正常登录,如果没有,调用老系统的插件进行验证,如果验证通过,将新系统的密码重置,然后正常登录。
这种方式的好处是可以平滑过渡,缺点是迁移不能一次完成,老系统的用户认证插件可能要存在很长时间。