赞
踩
通过自己的服务器获取openid需要用到wx.login接口,并且需要自己编写一个api
具体逻辑如下:
1、通过wx.login接口获取微信用户的code
2、在服务器中编写接口,通过获取的code与微信服务器交换用户的openid
3、将获取的openid传递给微信小程序并保存到缓存中
- wx.login({
- success: (res) => {
- const{ code }= res;
- //将获取到的code传递给api接口,并从api接口获取openid
- wx.request({
- url: 'http://localhost:3000/getOpenid',
- data:{
- code,
- },
- success(res){
- const { openid } = res.data;
- //将获取到的openid进行缓存
- wx.setStorageSync('openid', openid)
- }
- })
- },

- //获取openid
- app.get('/getOpenid',async(req,res)=>{
- const { code } = req.query;
- request({
- //通过code向微信服务器交换openid
- url:`https://api.weixin.qq.com/sns/jscode2session?appid=wx91542af25d5792fb&secret=57a6f1132a1090d5492bc2387d129498&js_code=${code}&grant_type=authorization_code`
- },(err,response,data)=>{
- // 将获取的openid传递给微信小程序
- res.send(data)
- })
- })
注意:要调用request指令的话要下载request插件:
下载代码:
npm install request --save
下载完成后通过require进行引入:
const request = require('request');
这里涉及到wx.login的相关使用,具体可以看微信官方的文档:
wx.login使用文档:wx.login(Object object) | 微信开放文档
使用code交换openid文档:小程序登录 | 微信开放文档
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。