记录本地使用node.js测试调用微信授权登陆

第一步获取到微信开发者平台的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完整的微信授权流程要怎么弄啊,这个是看网上的文章,自己捣鼓的,请求回来数据就不知道要干什么了,大佬带带

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值