第一步获取到微信开发者平台的Appid和Appsecret值
第二步创建一个node文件夹
在里面创建app.js文件
在当前文件夹安装 axios 和express
npm i axios
npm i express
下载好之后再app.js编写下面的代码
const express = require('express');
const axios = require('axios');
const app = express();
const AppID = '输入你微信开放平台的Appid';
const AppSecret = '输入微信开放平台的Appsecret';
// app.get('/wechat/login', (req, res) => {
//这个我没有看懂就,有明白的大佬可以帮我解答一下Thanks♪(・ω・)ノ
// // 生成微信授权链接
// const redirectUrl = encodeURIComponent('http://YOUR_DOMAIN/callback');
// const authorizeUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${AppID}&redirect_uri=${redirectUrl}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`;
// res.redirect(authorizeUrl);
// });
app.get('/callback', async (req, res) => {
const code =req.query.code ;
console.log(code,"获取前端传递的code")
// 获取访问令牌
const tokenUrl = `https://api.weixin.qq.com/sns/oauth2/access_token?appid=${AppID}&secret=${AppSecret}&code=${code}&grant_type=authorization_code`;
const tokenResponse = await axios.get(tokenUrl);
console.log(tokenResponse,"获取微信传递的access_token")
const { access_token, openid } = tokenResponse.data;
// 获取用户信息
const userInfoUrl = `https://api.weixin.qq.com/sns/userinfo?access_token=${access_token}&openid=${openid}&lang=zh_CN`;
const userInfoResponse = await axios.get(userInfoUrl);
const userInfo = userInfoResponse.data;
console.log(userInfo,"查看是否调用")
// 处理用户信息
res.send(`
<h1>${userInfo.nickname}的个人信息</h1>
<p><img src="${userInfo.headimgurl}" /></p>
<p>${userInfo.city},${userInfo.province},${userInfo.country}</p>
`);
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
我实在uni.app里面的调用的接口,随便找一个vue页面
Html部分
<button type="default" @click="node">node</button>
js部分
methods :{
node() {
uni.login({
provider: 'weixin',
"onlyAuthorize": true, // 微信登录仅请求授权认证
success: function(loginRes) {
console.log("查看uni.login的授权返回结果", loginRes)
uni.request({
url: 'http://localhost:8080/callback', //这个是我本地调试地址
method: 'GET',
data: {
code: loginRes.code
},
success: (res) => {
// 获取响应数据
const userInfo = res.data;
console.log(userInfo, "查看返回")
// 在页面中显示用户信息
uni.showToast({
title: userInfo,
icon: 'none'
});
},
fail: (err) => {
console.error(err, "报错");
}
});
}
})
},
}
接口放回值:{
openid: 'oj79l6L95VGald00WAfXExtNSDPE',
nickname: '什么',
sex: 0,
language: '',
city: '',
province: '',
country: '',
headimgurl: 'https://thirdwx.qlogo.cn/mmopen/vi_32/nENQwFCcpEHXgznoLg3yv5xhClbYWsNjEpWOKCbUoanHRRP1v7HOsiamlIMFq0amUaW3ibiaQgAbKgaiajk6jDwmQQ/132',
privilege: [],
unionid: 'ohfJ06LSShM6SCdAJlT0CFOb2Tsw'
} 查看是否调用
,问一下大佬们这个uni-App完整的微信授权流程要怎么弄啊,这个是看网上的文章,自己捣鼓的,请求回来数据就不知道要干什么了,大佬带带