微信小程序如何得到code获取token密钥,以及怎么微信登录授权获取用户详细信息?

登录授权流程:

点击进入–进入首页获取code请求到token–授权登录微信

1.如何获取code

(1) 第一步:通过wx.login得到code,调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息
wx.login()是微信小程序的内置调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)及本次登录的会话密钥(session_key)等

wx.login({
    success(res) {
      console.log(res);
  })
  //res是请求成功返回的数据里面包括code码,通过凭证进而换取用户登录态信息
  
 

(2)第二步:通过调用公司后台接口(自动注册/登录接口)获取腾讯用户的匿名信息

   wx.request({
      url: '公司用来请求token的接口',
      method:'POST',
      data:{
        code:'上一步通过wx.login()获取的code'
      },
      success:res=>{
        console.log(res)
         wx.setStorageSync('token',res的token)
         
      }
    })
    

1.wx.setStorageSync(‘key’,‘value’)是微信小程序本地存储的方法
2.我们可以每次请求到的token存储到本地,以后进行业务请求需要token的时候从本地获取。
3.wx.getStorageSync(‘key’)是微信获取本地数据的方法
4.token:是用户的唯一标识,是用户(前端)登录之后,后台对用户名,密码和失效时间加密返回给浏览器的一个字符串,用户(前端)可以利用token写其他业务代码
5.检测token是否有效:调取公司后台接口来检测是否有效

重点:这个code是大概5分钟会过期,而且每次调用wx.login()都会重新生成新的code,用新的code去获取token就会获取新的token,并且原来的token再请求业务就会token失效.

2.如何获取微信详细的用户信息

在这里插入图片描述

以前:wx.getUserInfo()来弹出授权登录,通过用户的授权来获取用户的详细信息,

在2021.4.13停止使用进行调整,详细信息见:https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801

官方提供了新的api用于授权登录:wx.getUserProfile()

  wx.getUserProfile({
      lang:'zh_CN',//请求信息返回的数据语言
      desc:'登录信息使用',//请求使用用途
      success:res=>{
        console.log(res.userInfo)//res.userInfo里就是用户的详细信息
       
      }
    })
    //得到用户详细信息后,可以通过调用公司后天更新用户信息接口把详细信息添加上去

检测微信登录态是否有效 wx.checkSession()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐