微信小程序如何通过code拿到用户的openid?

微信有一个静默登录,当进入小程序,页面加载完之后就会默认登录拿到code,这时候我们只需要将拿到的code去调后端的登录接口即可拿到用户的openid,openid在后续的开发中可能经常要用到,可以将其放到storage中,随用随拿

在这里插入图片描述

// app.js
// 后端的登录接口
import {
    
    wxLogin} from './pages/api/login/login.js'
App({
    
    
  onLaunch() {
    
    
    let loginInfo = {
    
    
      openid: null,
      session_key: null
    }
    let code = null;
    // 登录
    wx.login({
    
    
      success: res => {
    
    
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        console.log(res);
        code = res.code;
        // 拿到code就调用后端的登录接口,微信服务器就会返回openid、session_key等信息
        // 注意:要拿openid除了code还有三个参数:appId、secret、grant_type
        //(appid和secret在微信开发者后台可以获取)由于我们后端已经对这块做了处理,只需要传code即可
        wxLogin(code).then(res => {
    
    
          let isNewUser = res.data.data.exist_openid
          if (res.statusCode == 200) {
    
    
            loginInfo = res.data.data; // 将openid、session_key 存放到本地storage
            this.setLoginInfo(loginInfo)
          }
        })
      }
    })
  },
   // 存放openid、session_key
  setLoginInfo(loginInfo){
    
    
    // 异步:无需存储完成才执行后续操作
    wx.setStorage({
    
    
      key:'login_info', // 名称
      data:loginInfo  // 存放的数据
    })
  },
  /*
  	* 要用的时候直接拿就行:
  	* let openId = wx.getStorageSync('login_info').openid
  */
})

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_56733569/article/details/130019089