公众号平台的H5实现微信授权登录

微信给开发者提供的测试账号平台:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
微信开发文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
在这里插入图片描述
在这里插入图片描述

需要先关注公众号,否则跳转授权页面后会提醒未关注该公众号。

在这里插入图片描述
在这里插入图片描述

步骤:

  1. 引导用户打开如下页面(例如:可通过点击按钮操作触发):

    let APPID = '公众号的appid'
    let REDIRECT_URI = encodeURIComponent('授权后跳转回的页面')
    let SCOPE = 'snsapi_userinfo'
    location.href=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${APPID}&redirect_uri=${REDIRECT_URI}&response_type=code&scope=${SCOPE}&state=STATE#wechat_redirect `
    

    appid:公众号的唯一标识。
    redirect_uri:授权后重定向的回调链接地址,要使用encodeURIComponent()对其进行编码处理。
    response_type:返回类型,填写code即可。
    scope:应用授权作用域。snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid);snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )。
    state:非必须,重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节。
    #wechat_redirect:无论直接打开还是做页面302重定向时候,必须带此参数。

    在这里插入图片描述

  2. 如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE;拿到code传给后端获取用户信息;

    //获取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();
    }
    

常见问题:

  1. 一般情况下是授权回调地址和授权回调页面域名不匹配导致的。
    在这里插入图片描述
  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Uniapp中,我们可以通过使用相关插件或API实现公众号H5和小程序微信授权登录功能。 对于公众号H5授权登录,我们可以使用uni-login插件或通过uni.request发起微信官方授权登录的接口。首先,在公众号H5页面中,我们需要引入相应的JS-SDK,并使用wx.config配置公众号的AppID和权限等信息。然后,在登录按钮的点击事件中,调用wx.checkSession来检查当前用户的登录态是否有效。若无效,再调用wx.login获取code,并通过wx.request发起后台请求来换取用户的access_token和openId等信息。最后,我们可以将这些信息保存起来,并根据需求进行相应的业务逻辑处理。 对于小程序的微信授权登录功能,在Uniapp中可以通过使用uni.login和uni.getUserInfo API来实现。首先,在小程序的入口页面中,在onLaunch生命周期里调用uni.login获取用户的登录凭证code,并将code传给后台服务器。后台服务器通过wx.login接口获取到用户信息后,再校验用户的身份。然后,在登录按钮的点击事件中,调用uni.getUserInfo获取用户的信息,并存入本地缓存,以供后续使用。接着,我们可以根据需要进行相应的业务逻辑处理。 需要注意的是,在实现公众号H5和小程序微信授权登录功能时,我们需要保证项目中已经配置了相关的权限和配置信息,并正确处理各种回调和错误情况。同时,为了保护用户的隐私和安全,我们还需要合理处理用户信息的存储和使用,尽量避免泄露和滥用用户的个人信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值