首先要注册一个公众号
再里面配置自己的安全域名 有两个地方要配置 开发-》设置
配置完之后 在微信开发工具打开,
因为微信那边的限制 我目前只能在把页面放到服务器上进行访问
这个是静默授权在逻辑是打开页面时 有一个redirect_uri 这个参数 是获取code后的重定向位置 一般就是当前页面
code 的值 获取成功后会放到url中 通过 location去获取就好了

注意在使用之前要去公众平台里面配置用户信息授权的合法地址

 created() {
                this.getUrl()
            },
getUrl() {
                    let userAgent = navigator.userAgent;
                    if (userAgent.includes("iPhone") || userAgent.includes("iPad")) {
                        sessionStorage.setItem("originUrl", location.href); // 用于ios分享
                    }
                    this.getBaseInfos();
                },

                // 编码函数
                getUrlParam(name) {
                    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
                    var r = window.location.search.substr(1).match(reg); //匹配目标参数

                    if (r != null) return unescape(r[2]);
                    return null; //返回参数值
                },

                getBaseInfos() {
                    if (this.isWeiXin()) {
                        const code = this.getUrlParam("code"); // 截取路径中的code
                        if (code == null || code === "") {
                            let url = "";
                            let userAgent = navigator.userAgent;
                            if (userAgent.includes("iPhone") || userAgent.includes("iPad")) {
                                url = sessionStorage.getItem("originUrl");
                            } else {
                                url = window.location.href;
                            }
                            window.location.href =
                                "https://open.weixin.qq.com/connect/oauth2/authorize?appid=你申请的appkey&redirect_uri=" +
                                encodeURIComponent(url) +
                                "&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect";
                        } else {
                        }

                        if (code != "" && code != null) {
                            this.wxCode = code;
                            console.log(code)
                            this.getOpenid(code)
                        }
                    } else {
                    }
                },

                isWeiXin() {
                    var ua = window.navigator.userAgent.toLowerCase();
                    if (ua.match(/MicroMessenger/i) == "micromessenger") {
                        return true;
                    } else {
                        return false;
                    }
                },
Logo

前往低代码交流专区

更多推荐