写项目时客户来了一个需求,要求免登录展现大屏。
实现思路:复制一个地址给某个用户,让他通过地址访问。通过地址栏输入之后,截取url中的用户名和密码。再调用登录接口根据后台的需求传入所需要的值即可。
var n = this.getAddressURLPar("n")
var p = this.getAddressURLPar('p')
if (n && p) {
var p2 = cryptoEncrypt(p);
this.$store.dispatch("Login", {
username: n,
password: p2,
}).then(() => {
this.$router.push({ path: "/bigscreen" })
})
} else {
this.t = true
}
},
function getAddressURLPar (paramName) {
var reg = new RegExp("(^|&)" + paramName + "=([^&]*)(&|$)");
//匹配目标参数
var r = window.location.search.substr(1).match(reg);
//返回参数值
if (r != null) return unescape(r[2]); return null;
},
如果有登录页面就设置一个布尔值进行if或者show判断达到显示隐藏即可。