小程序 登录

  • 定义和使用

    小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。
    login
    说明:
    1、调用 wx.login() 获取 临时登录凭证 code ,并回传到开发者服务器。
    2、调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key
    之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
    注意:
    1、会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。
    2、临时登录凭证 code 只能使用一次。
  • wx.login(Object object)

    调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。
    参数:
    属性 类型 默认值 必填 说明
    timeout number 超时时间,单位ms
    success function 接口调用成功的回调函数
    fail function 接口调用失败的回调函数
    complete function 接口调用结束的回调函数(调用成功、失败都会执行)

    Object res

    属性 类型 说明
    code string 用户登录凭证(有效期五分钟)。开发者需要后端开发者服务器调用 auth.code2Session,使用 code 换取 openid 和 session_key 等信息
    想了解更多后台知识,可以阅读我们的 PHP教程Java教程
    object.success 回调函数代码示例:
    wx.login({
      success (res) {
        if (res.code) {
          //发起网络请求 把code传给后台
          wx.request({
            url: 'https://test.com/onLogin',
            data: {
              code: res.code
            }
          })
        } else {
          console.log('登录失败!' + res.errMsg)
        }
      }
    })
    
    
  • wx.checkSession(Object object)

    通过 wx.login 接口获得的用户登录态拥有一定的时效性。用户越久未使用小程序,用户登录态越有可能失效。反之如果用户一直在使用小程序,则用户登录态一直保持有效。具体时效逻辑由微信维护,对开发者透明。开发者只需要调用 wx.checkSession 接口检测当前用户登录态是否有效。
    登录态过期后开发者可以再调用 wx.login 获取新的用户登录态。调用成功说明当前 session_key 未过期,调用失败说明 session_key 已过期
    参数:
    属性 类型 默认值 必填 说明
    success function 接口调用成功的回调函数
    fail function 接口调用失败的回调函数
    complete function 接口调用结束的回调函数(调用成功、失败都会执行)
    wx.checkSession({
      success () {
        //session_key 未过期,并且在本生命周期一直有效
      },
      fail () {
        // session_key 已经失效,需要重新执行登录流程
        wx.login() //重新登录
      }
    })