大数跨境

「重度用户分享」想要实现只有公司网络登录才能进入系统?方法就在这里了!

「重度用户分享」想要实现只有公司网络登录才能进入系统?方法就在这里了! 白码
2021-10-15
0

点击蓝字


关注我们

上次重度用户分享的文章发布后,我们收到了很多其他用户编写的使用心得分享。我们精选了其中的一篇,一起来看看他们是怎么运用白码平台来便捷开发的吧!


实现客户端限定环境登录

Function Description

来自  白码用户 @棕不拉几 的分享

场景描述

公司需要实现只有使用公司的电脑才可登录系统进行使用和操作,我与白码开发工程师进行了沟通,发现其实可以很快速实现。白码邀请我编写一期用户分享,所以我将这个场景分享出来。

使用白码客户端登录系统,但只能使用特定环境的电脑进行登录,并且没有进行激活授权的账号将无法使用客户端进行登录,只有通过系统管理员激活后方可使用系统。


实现思路

客户端登录+授权(激活账号)


实现效果

1.仅可通过客户端进行登录系统


2.未激活无法登录系统


3.异地(使用非特定环境)登录,无法使用系统


前期准备

激活记录表:用于记录账号激活信息,字段内容包括用户(关联用户表)、激活码、激活状态、操作人(关联用户表)等。


用户表:需要在用户表中新增两个字段,激活状态以及激活记录,激活记录就是激活记录表的集合。


实现步骤

激活功能:

(1)选择用户步骤

(2)获取已选择用户的激活记录:筛选已选择的用户

(3)新增激活记录信息:日期设为当前系统日期,用户设为第一步选择的用户,状态的默认值为“未使用”,操作人设置为当前用户。

(4)获取上一步新增的激活记录。

(5)更新激活码,将激活码设为此前新增的激活信息的id。

(6)更新用户激活状态,将激活状态设置为“已激活”。


更新激活码状态功能:

(1)选择激活信息

(2)更新激活状态:将状态设为“已使用”

(3)编程步骤:返回结果


编写初始化脚本,实现以下效果:

1.账号未激活,无法使用系统

2.账号已激活,但并非是办公环境,无法使用系统

3.并非使用客户端登录,无法使用系统

实现代码:


向上滑动阅览


function setup() {

    let url = "https://v1.bnocode.com"

    //初始化脚本

    let client = navigator.userAgent.includes("BaimaDesktop");//获取是不是客户端环境

    vue.$watch(function () {

        return vue.$route;

    }, function (route) {

        if (route.name == "home" && !client) {

            alert("请从客户端进入!")

             location.href = url +"/reset"

        }

    }, {

        immediate: true

    })

    if (client) {

        let userInfo = vue.$store.getters["context/user"];

        let state = userInfo["6155410444051163b2a0e275"];   //用户激活状态

        //alert(state)

        if (!state || state != "已激活") {

            alert("当前账号还未激活,请联系管理员进行激活!\n  管理员激活后,需要重新进入系统!")

            setTimeout(() => {

                location.href = url + "/reset"

            });

        } else {

            let newCodeArray = userInfo["___615fe706e4bc0eb802516f3b"][0];  //激活信息

            let newCode = newCodeArray["615fe6d9e4bc0eb802516eb8"];     //激活码

            let newCodeState = newCodeArray["615ff0d6521877b801ac3779"];    //激活码使用状态

            bmDesktopRun(`@let verify = path.resolve(app.getPath("userData"),".verify");result = fs.readFileSync(verify,"utf8")`, function (result) {//环境有激活文件

                //alert("result:" + result)

                if (result && state == "已激活") {

                    //登录成功

                } else {

                    alert(state)

                    alert("当前账号还未激活,请联系管理员进行激活后再重新登录!")

                    location.href = url + "/reset"

                }

            }, function () {//环境没有激活文件

                if (state == "已激活" && newCodeState != "未使用") {

                    alert("当前环境不是办公环境,无法登录!\n若您电脑重装了系统或若有特殊需求需要异地登录系统,请联系管理员进行重新激活!")

                    location.href = url + "/reset"

                } else if (state == "已激活" && newCodeState == "未使用") {

                    bmDesktopRun(`@let verify = path.resolve(app.getPath("userData"),".verify");fs.writeFileSync(verify,"${newCode}")`)

                    vue.$store.dispatch("program/exec", {

                        flow: "616009d8e4bc0eb80251a2b2" //更新激活码状态

                        form: {

                            "616009dc521877b801ac5e82": {   //选择激活信息

                                _id: newCode

                            }

                        }

                    }).then(function (res) {

                        let result = res.data;

                        if (result == "1") {

                            alert("激活成功!")

                        } else {

                            alert("激活失败!请重新激活!")

                            location.href = url + "/reset"

                        }

                    })

                } else {

                    alert("当前账号还未激活,请联系管理员进行激活后再重新登录!")

                    location.href = url + "/reset"

                }

            })

        }

    }

}





再次感谢白码用户@棕不拉几 的精彩分享~

也欢迎各位白码用户可以根据文章内容,自己实操感受一下,有发现更好的解决方法也可以发出来和我们分享,与白码其他用户一起交流~


往期 · 推荐

通过扫码实现图书借出与归

在企业微信上快捷审批报价

快速实现记账功能

快速实现备用金及其流水明细

快速实现自动化绩效考核评分


白码科技 · BAIMA

扫描二维码添加客服微信

有任何问题都可以询问客服哦~

点击“阅读原文”前往白码软件中心!

【声明】内容源于网络
0
0
白码
白码无代码 | 低代码开发平台可以帮助开发者和企业技术开发团队增加软件开发速度,降低开发成本,达到降本增效的目的。用户可以通过白码,按照企业所需自行定制ERP,CRM,OA等软件;成为白码开发者,把想法快速变成软件吧。
内容 125
粉丝 0
白码 白码无代码 | 低代码开发平台可以帮助开发者和企业技术开发团队增加软件开发速度,降低开发成本,达到降本增效的目的。用户可以通过白码,按照企业所需自行定制ERP,CRM,OA等软件;成为白码开发者,把想法快速变成软件吧。
总阅读105
粉丝0
内容125