关于微信客户端内H5网页获取用户授权信息实现步骤(基于snsapi_userinfo类型的操作)

这篇文章主要是给大家分享一下基于微信客户端的H5 网页如何一步步实现获取当前微信用户个人信息并且唤起微信客户端弹窗面板,引导用户授权获取用户授权信息拿到code参数去做我们自己的业务逻辑的步骤和流程;接下来就和大家详情梳理和介绍下如何具体去实现!

  1. 工欲善其事,必先利其器,我们需要做好准备工作,

  1. .我们需要自己公司的微信公众号(这里公众号类似必须是服务号类型且已经通过微信官方的认证,如果是订阅号,实现起来很麻烦,需要做挂靠服务号处理,不建议使用;)

  1. 准备号服务号之后,接下来就是去在服务号里面进行各种相关配置,我这边当时是前端来进行相关配置的,后端需要的配置也一并完成了,一般是公司后端去做相应的配置。所有的配置都基本在左侧菜单的设置与开发中;接下来主要讲一下要做哪些配置和如何配置;

3.1首先需要去配置js接口安全域名,由于微信客户端的授权需要在测试环境下才能去调试和获取,所以需要我们去配置测试和生产环境的域名,建议一开始就把测试和生产环境域名配置完成,方便后期调试,

微信公众号通过用户点击链接跳转到H5页面并获取openid的过程通常涉及以下几个步骤: 1. **生成授权URL**:首先,你需要在微信公众平台上申请得到一个`snsapi_base`或`snsapi_userinfo`权限的授权地址,这两个权限级别可以分别获取用户的公开信息和基础信息。 ```javascript var appId = 'your_app_id'; var redirectUri = 'http://your_domain.com/callback'; // 小程序回调域名 var scope = 'snsapi_userinfo'; // 或者'snsapi_base' var state = 'state_string'; // 可选,用于防止CSRF攻击,自定义字符串 var authorizeUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${encodeURIComponent(redirectUri)}&response_type=code&scope=${scope}&state=${state}#wechat_redirect`; ``` 这里的`#wechat_redirect`表示微信处理完授权后会自动跳转回指定的回调地址。 2. **用户授权**:用户点击该链接后会在微信客户端打开授权界面,同意授权后会跳转回你设置的回调地址。 3. **回调处理**:当用户完成授权微信服务器会将授权(`code`)作为GET参数传递给你设置的回调地址。在回调页,需要发送请求到微信服务器换取`access_token`和`openid`。 ```javascript axios.get('https://api.weixin.qq.com/sns/oauth2/access_token', { params: { appid: appId, secret: 'your_app_secret', code: request.query.code, grant_type: 'authorization_code' }, }) .then(response => { const accessToken = response.data.access_token; const openid = response.data.openid; // 使用access_token和openid做后续操作 }) .catch(error => { console.error('Error:', error); }); ``` 这里假设你已经设置了axios库来发起HTTP请求,并且有对应的`app_secret`。 4. **保存openid**:获得`openid`后,可以在你的数据库或其他存储系统中保存,以便后续关联用户的其他操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值