uniapp获取用户OpenId及用户详情
2024-09-06 05:02:25
页面增加一个按钮
<button type="default" open-type="getUserInfo" @click="getUserInfo">UserInfo</button>
前端解密
安装 crypto-js
npm install crypto-js
下载 WXBizDataCrypt.js 文件
WXBizDataCrypt.js微信官方下载地址
打开Node文件夹,把 WXBizDataCrypt.js 文件放入你的项目中。(比如我是放在我的common文件夹下)
在需要解密的页面引用该文件
import WXBizDataCrypt from "@/common/WXBizDataCrypt.js"; //请以你的实际地址为准
具体代码如下,关键位置请看注释
data() {
return {
Code: '',
openid: '',
session_key: ''
}
},
getUserInfo() {
//登录
uni.login({
provider: 'weixin',
success: res => {
// console.log('登录成功:', res);
//获取临时登录凭证code
this.Code = res.code;
//获取openid,session_key
let appid = "wxce185cd1da123456" //需替换
let secret = "25d0fe7478355910fc143ce6b1234567" //需替换
let url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + secret +
'&js_code=' +
this.Code + '&grant_type=authorization_code';
uni.request({
url: url, // 请求路径
success: res => {
// console.log('openid session_key:', res.data);
this.openid = res.data.openid
this.session_key = res.data.session_key //获取用户信息
uni.getUserInfo({
provider: 'weixin',
success: res => {
console.log('获取用户信息', res);
//解密encryptedData,可获取用户openId
let pc = new WXBizDataCrypt(appid, this.session_key);
let data = pc.decryptData(res.encryptedData, res.iv);
console.log('解密后:',data)
},
fail: err => {
console.log('获取用户信息错误:', err)
}
}) },
fail: err => {
console.log('请求失败:',err)
}
});
},
fail: err => {
console.log('登录失败:', err)
}
})
},
最新文章
- 解读ASP.NET 5 &; MVC6系列(17):MVC中的其他新特性
- 安装Hive(独立模式 使用mysql连接)
- 关于android的日志输出&;LogCat
- Python Beautiful Soup学习之HTML标签补全功能
- Html 之div+css布局之css基础
- Java for LeetCode 206 Reverse Linked List
- DB2解除锁表
- UVA 11609 Teams 组合数学+快速幂
- RabbitMQ C# 例子 -摘自网络
- JavaScript函数学习要点总结(一)
- oracle rman异机恢复
- CentOS上安装Hadoop2.7,添加数据节点,运行wordcount
- springboot(一)
- vue客户端渲染首屏优化之道
- 如何下载西门子产品CAD、3D和EPLAN文件
- 36ArcGIS API for JavaScript3.X 系列加载天地图(经纬度)
- LOJ#2339 通道
- 单元测试系列之十一:Jmockit之mock特性详解
- centos7 keepalived 配置高可用
- Nodejs学习笔记(七)—Node.js + Express 构建网站简单示例
热门文章
- 关于C语言中的unsigned
- 《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
- Java 在Word中创建多级项目符号列表和编号列表
- 双非本科Android开发,如何逆袭拿到大厂 Offer?
- SpringBoot开发二十-私信列表
- SpringCloud升级之路2020.0.x版-15.UnderTow 订制
- 使用JDBC(Dbutils工具包)来从数据库拿取map类型数据来动态生成insert语句
- 08-SpringCloud Consul
- SQL 练习9
- 高性能 C++ HTTP 客户端原理与实现