公告:本站整合全网多家VIP站点资源,全网虚拟资源一手掌握!!!
欢迎您访问本网站,请 注 册了解更多!
网站首页 > 网站源码 > IT技术 > vue > 正文

vue-h5微信公众号 网页授权登录(静默授权)

作者:免费资源网日期:2022-10-16浏览:274分类:vue

公司需求:h5网站支持微信授权登录
1.微信只支持微信浏览器进行授权登录。所以我们先判断浏览器,如果是微信浏览器,那么显示微信图标,可以点击微信图标授权登录。如果不是则不显示图标。
// 判断是否是微信浏览器function is_weixin(){
   var ua = navigator.userAgent.toLowerCase();
   if(ua.match(/MicroMessenger/i)=="micromessenger") {
       return true;
   } else {
       return false;
   }}
2.前置条件
  • 需要在微信公众平台注册账号

  • 服务号需要微信认证 否者接口权限无法使用

  • 如果使用unionid,需要先将公众号绑定到微信开放平台帐号后,才会出现该字段。

3.微信授权分为静默授权(snsapi_base)和非静默授权(snsapi_userinfo)

我们选择静默授权

静默授权流程:以snsapi_base为scope发起网页授权得到code,再用公众号的appid和secret获取微信公众号的全局唯一凭证access_token,然后用拿到的access_token调用公众号的“用户管理接口”中的“获取用户信息接口”获得unionID。

前端需要做的:
以snsapi_base为scope发起网页授权得到code,调用后台接口获取unionId
核心代码如下:


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)
    }}


参考资料:https://www.likecs.com/show-454058.html
https://blog.csdn.net/zhoulib__/article/details/109154334



本站所有资源都来源于网络收集、网友提供或者交换而来!如果侵犯了您的权益,请及时联系本站客服,我们立刻删除!

暂无评论,来添加一个吧。

取消回复欢迎 发表评论:

你的会员级别无法评论,请升级会员