微信H5授权获取code,拿取用户信息(前端部分)
2020-02-03 09:47
2715 查看
微信H5授权获取code,拿取用户信息
##如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。
这是微信给的说明文档,但实际上,我们首先要做的是去微信公众平台设置一些配置
- 开发–>基础配置
这里我们就可以拿到AppID 与 AppSecret(后台会用到)及ip白名单 - 开发–>接口权限
设置js接口安全域名与网页授权域名
到这里前期的基础工作就已经完成了
下面就开始代码部分
// 判断是否为公众号模拟器环境 const isWechat = () => { return String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === "micromessenger"; }
我们要拿code,就必须先访问这个地址,其中appid 是必填(可以把这串地址直接放到微信浏览器中打开,就会出现授权提示)
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
访问微信给的链接地址,就可以拿取到code,下面这部分代码就是拿取code
// 判断公众号截取code const getUrlParam = (name) => { let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); let r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; }
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 公众号的唯一标识 |
redirect_uri | 是 | 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 |
response_type | 是 | 返回类型,请填写code |
scope | 是 | 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息) |
state | 否 | 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 |
下面我自己上写的一个测试demo代码
// 判断是否为公众号模拟器环境 const isWechat = () => { return String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) === "micromessenger"; } // 判断公众号截取code const getUrlParam = (name) => { let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); let r = window.location.search.substr(1).match(reg); if (r != null) { return unescape(r[2]); } return null; }export default { data() { return { code: '' } }, onLoad() { this.getWxCode() }, methods: { getWxCode(){ if (isWechat()) { let appid = "wxae048f1b059e77c0"; //为测试号id let code = getUrlParam("code"); //是否存在code let local = window.location.href; // let local = 'http://h5.x*****o.com/' //测试路径 if (code == null || code === "") { //不存在就打开上面的地址进行授权 window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect`; // https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxae048f1b059e77c0&redirect_uri=http://devapi.xingyeqiao.com/&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect }else{ this.code = code } } } } }
local路径要和授权域名对应上
window.location.href跳转去授权,授权成功后会重定向之前的页面,这样我们就拿到code,然后把code给后台,就可以拿到openid,获取到用户信息了
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C#微信开发之旅(八):通过授权code以及openid获取用户信息
- java 网页授权获取微信用户信息错误 40029 微信端会发出两次请求 错误的oauth第二次无效的code
- 微信公众号网页授权--前端获取code及用户信息(vue)
- 网页授权获取微信用户信息错误40029:微信会发出两次提交 不合法的oauth_code
- 微信网页授权,获取微信code,获取access_tocken,获取用户信息
- Android集成原生微信授权获取用户信息登录
- 关于微信小程序拒绝授权后,重新授权并获取用户信息
- 微信开发 网页授权获取用户基本信息
- 微信开发之获取OAuth2.0网页授权认证和获取用户信息进行关联(转:http://playxinz.iteye.com/blog/2249634)
- 微信OAuth2网页授权获取用户信息
- 微信网页授权获取用户基本信息(snsapi_base)
- Spring Boot 微信-网页授权获取用户信息
- 微信网页获取用户基本信息(无需弹出授权页面)
- 微信oauth网页授权获取用户基本信息
- 夺命雷公狗---微信开发53----网页授权(oauth2.0)获取用户基本信息接口(3)实现世界留言版
- 微信授权php获取用户基本信息
- 微信订阅号里实现oauth授权登录,并获取用户信息 (完整篇)
- java微信网页授权获取用户信息以及JSSDK自定义分享等功能<五>
- 微信小程序新的授权方式,获取用户信息
- 微信开发笔记——微信网页登录授权,获取用户信息