自己做的,没有过多的记录,直接用就好
前端部分
uni.login({
provider: 'weixin',
success(res) {
const { code } = res;
console.log('获取code', code);
let val = {
code
};
uni.request({
url: 'http://localhost:3000/registration/getOpenid', //服务器地址
method: 'post', //请求方式
data: {
code
},
success: (res) => {
console.log('请求成功', res);
}
});
}
});
node后端部分
const express = require('express');
const router = express.Router();
const request = require('request')
const APP_URL = 'https://api.weixin.qq.com/sns/jscode2session' //获取openid地址
const ART_APP_ID = 'xxxxxxxxxxxx'//AppID(小程序ID)
const ART_APP_SECRET = 'xxxxxxxxxxxx'//AppSecret(小程序密钥)
// 获取openid
router.post('/getOpenid', (req, res) => {
const js_code = req.body.code
if (js_code) {
request(`${APP_URL}?appid=${ART_APP_ID}&secret=${ART_APP_SECRET}&js_code=${js_code}&grant_type=authorization_code`, (error, response, body) => {
if (error) throw error
if (response.statusCode === 200) {
const bodyInfo = JSON.parse(body)
const openId = bodyInfo.openid
res.json({
success_code: 200,
data: {
openId
}
})
} else {
res.json({
success_code: 400,
message: '获取openid失败'
})
}
})
}
})
module.exports = router;