我犯了一个小错,然后用前端技术解决了这个问题

72 阅读2分钟

事情是这样的,现在系统开始重保了,原来的登录页面不让使用了,让用户通过公司的门户进行统一跳转登录,那么在部署的时候我就直接关闭了路由中login菜单,很多用户不知道具体情况,然后使用login页面一直无法登陆,就到群里问无法直接登录的问题,引起了很大的抱怨,用户以为系统服务无法访问导致的。

另外,在本地开发中为了方便,就开着login页面,前端系统部署的时候,再把login页面关闭,使用redirect页面。但是经常在本地急匆匆改完一个bug,提交到线上的时候忘记关闭login页面,需要重新部署一遍关闭login页面,这样才觉得安全。

今天又犯了一次这样的错误,而且部署不是特别的顺利,导致线上环境开着login页面,而我担心再次部署会出问题,一直不敢随便再次部署。

后来我仔细的分析了问题,怎么解决呢?突然我想到了今天另外一个系统,也是关闭了login页面,但是在登录地址页面有一行提示:内网登陆暂时关闭,请通过门户登录。我的脑子里一闪而过,我可不可以在登录页面进行一下提示,或许用户就知道该怎么操作,而不用去群里一遍又一遍提问,或者直接认为系统down了;并且在本地开发自动开着login页面,但是线上环境则是提示信息。

于是,不在菜单里直接禁掉login页面,而是修改了login页面,首先判断是本地环境还是线上环境,如果是本地环境则打开着登录的用户名密码提交表单,而如果是线上环境,则不显示表单,并且提示用户登录暂时关闭,去门户进行跳转,实现的代码如下:

if (window.location.origin.indexOf("test.123456.com") > -1) {

//测试项目的域名 test.123456.com

} else if (window.location.origin.indexOf("prod.123456.com") > -1) {

//生产环境 线上项目的域名 prod.123456.com

}else{

//本地环境

}

这样实现了之后,不仅用户得到了有用的信息,不会随便怀疑系统挂了,在本地开发也比较方便。