配置小程序登录插件

最近更新时间: 2025-10-11 18:10:00

操作场景

该文档指导您通过 TSF 控制台,创建和绑定微信小程序登录插件。

微信小程序开发者在开发小程序的过程中,需要考虑用户登录认证相关的业务逻辑,基于此插件,开发者可以方便地实现业务的登录认证服务。

典型的微信小程序登录插件使用场景是:

  • 实现微信小程序用户登录:遵守微信小程序官方登录规范,在微服务网关侧完成登录业务,生成用户登录态凭证,并返回给小程序前端处理,同时,将微信登录成功返回的原生登录态数据传递至业务后台处理。
  • 实现用户登录态凭证校验:微服务网关对用户登录态凭证进行校验,若校验通过,则网关将请求放行,并携带微信原生登录态数据传递至业务后台,否则,返回失败原因至小程序前台,小程序客户端可以根据异常状态码,进行对应的操作(如因登录态过期失效进行重新登录操作)。

操作步骤

创建微信小程序登录插件

  1. 登录 【TSF 控制台】,在左侧导航栏单击组件中心下的【微服务网关】>【插件管理】。
  2. 在插件管理页面,单击【新建插件】,填写基本信息。
  • 插件类型:选择 WeChatMpLogin。
  • 插件名称:必填。
  • 插件描述:选填。
  1. 填写参数设置。
  • APPID:小程序唯一凭证密钥,获取方式同 appid。
  • APPSECRET:小程序唯一凭证密钥,获取方式同 appid。
  1. 获取登录凭证 Code。 请求 Code 携带位置:微信后台通过 Code 换取用户的登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)。
  2. 向小程序返回登录态。
  • 自定义登录态参数名:插件对微信登录态以及其他登录信息进行加密的参数名。 返回自定义登录态参数位置:插件对登录态进行加密后的参数携带位置。
  • 登录态过期时间:登录态过期时间,以分为单位。
  1. 选择登录态校验。
  • 前台业务请求自定义登录态参数位置:小程序请求业务服务时,登录态携带位置。
  • 向业务后台传输登录态参数位置:网关对登录态进行解密后,将提取的微信登录信息传递至用户后台服务的携带位置。
  1. 单击【完成】,完成创建。

将请求参数转 Tag

TSF 提供了一系列将请求参数转 Tag 能力,方便进行细粒度的服务治理能力。

默认 Tag 操作说明

  • 平台提供了一系列微信默认参数的灰度发布能力,包含用户名、性别等信息。用户可以勾选这些参数并提供参数的填写位置,方便平台将这些请求参数转为 TSF 中的标签。
  • 当某个参数的传入具有请求的唯一性(该参数值不重复),则可以将改参数设置为 TraceID,平台将对该参数与平台生成的 TraceID 进行关联,方便用户进行唯一性定位与检索。
  • 仅支持一个参数设置为 TraceID/

自定义 Tag 操作说明

自定义 Tag 使用请参考 [微服务网关 Tag 插件] 。

绑定插件

创建好 WeChatMpLogin 类型的插件需要绑定到分组或 API 上才会生效。

  1. 登录 【TSF 控制台】,在左侧导航栏单击组件中心下的【微服务网关】>【插件管理】。
  2. 选择刚刚创建好的插件,单击操作列的【绑定对象】。
  3. 在绑定对象中,将插件绑定到某个分组或者某个分组下的 API 上。
  4. 单击【提交】。当用户访问对应的微服务网关分组时,插件就会生效。

案例说明

  1. 获取 APPID 与 APPSECRET。
  2. 根据上述 操作步骤 ,完成微服务网关中微信小程序登录插件的创建与绑定。
  3. 编写小程序登录业务。
// 登录
wx.login({
  success: res => {
        // console.log("code is : ", res.code);
  wx.request({
          url: ${LOGIN_BUSINESS_URL}, //登录业务访问路径
          header: {
            'content-type': 'application/json',
            'js_code': res.code, //携带js_code
          },
          success: res => {
              //本地缓存
             wx.setStorageSync('user_session',     res.header.user_session);
            //let user_session =     wx.getStorageSync('user_session') || ''
            //console.log('idsession is :', idsession);
            wx.showToast({
                title: '登录成功'
            })
          }
        }
        )
      }
    }) 
  1. 通过小程序访问业务服务。
 BusinessRequestFunc: function () {
    //获取登录时存储的user_session
    let user_session = wx.getStorageSync('user_session') || '';
    //console.log("user_session is :" , user_session);
    wx.request({
      url: ${BUSINESS_URL}, //业务访问路径,
      header: {
        'content-type': 'application/json', 
        'user_session': user_session
      },
      success: res => {
        //console.log("response : ", res.data)
        // your business here   
      }
    }
    )
     //具体接口使用文档参照微信小程序官方使用接口文档
  }