pc端网页实现微信扫码登录

微信开发文档:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html
在这里插入图片描述

在这里插入图片描述

  1. 点击按钮,跳转到微信授权页面,会出现一个二维码。
    在这里插入图片描述
    在这里插入图片描述

    //拉取授权页面
    let APPID = '网页应用的appid'
    let REDIRECT_URI = encodeURIComponent('授权后跳转回的页面')
    location.href=`https://open.weixin.qq.com/connect/qrconnect?appid=${APPID }&redirect_uri=${REDIRECT_URI }&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect `
    

    appid:是应用的唯一标识。
    redirect_uri:授权登录后跳转回的页面,需要在微信开放平台配置授权回调域,用户使用微信帐号登录后,只能回调至该域名下的页面。要使用encodeURIComponent()进行编码,不能使用encodeURI(),因为如果是Vue项目并且使用的是hash模式的话,#后面的内容会丢失,导致报错:scope错误或没有scope权限。
    response_type:填code即可。
    scope:应用授权作用域,网页应用目前仅填写snsapi_login即可。
    state:非必填,用于保持请求和回调的状态,授权请求后原样带回给第三方。

  2. 用户扫码,会弹出授权弹框,确认授权后,微信会自动跳转到回调地址redirect_uri,并通过?的形式拼接相关回调参数。
    在这里插入图片描述

  3. 提取出code传给后端,后端接口会返回网页授权access_token和其他一些用户信息。

    //获取url中的search
    let search = location.search.slice(1);
    let arr = search.split("&");
    let result = {};
    arr.forEach(function(item){
          let itemArr = item.split('=');
          result[itemArr[0]]=itemArr[1];
    })
    
    if(result.code){
    	//调用后端接口
    	getUserInfo();
    }
    
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值