登录API

本文编辑: 大妖怪 大妖怪浏览 10279 版权所有,严禁转载

接口说明:

接口 说明
wx.login 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成
wx.checkSession 检查登录态是否过期

接口用法:

wxml

<view>
  <button bindtap="login">登录</button>
</view>

js

var app = getApp()
Page({
  data: {

  },
  onLoad: function () {

  },
  login:function(){
     wx.login({
      success: function(res) {
        if (res.code) {
         console.log(res.code);
         wx.request({
           url: 'https://api.weixin.qq.com/sns/jscode2session',
           data: {
             appid:'你的appid',
             secret:'你的secret',
             js_code:res.code,
             grant_type:'authorization_code'
           },
           method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
            header: {
              'Content-Type': 'json'
            },
           success: function(res){
             console.log("openid:"+res.openid);
             console.log("session_key:"+res.session_key);
           },

         })
        } else {
          console.log('获取用户登录态失败!' + res.errMsg)
        }
      }
    });
  }
})

主要方法:

【wx.login】:【调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成】

参数 类型 必填 描述
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明:

参数名 类型 说明
errMsg String 结果
code String 用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台,使用code 换取 session_key api,将 code 换成 openid 和 session_key
//app.js
App({
  onLaunch: function() {
    wx.login({
      success: function(res) {
        if (res.code) {
          //发起网络请求
          wx.request({
            url: 'https://test.com/onLogin',
            data: {
              code: res.code
            }
          })
        } else {
          console.log('获取用户登录态失败!' + res.errMsg)
        }
      }
    });
  }
})

【wx.checkSession】:【检查登录态是否过期】

参数 类型 必填 描述
success Function 接口调用成功的回调函数,登录态未过期
fail Function 接口调用失败的回调函数,登录态已过期
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
wx.checkSession({
  success: function(){
    //登录态未过期
  },
  fail: function(){
    //登录态过期
    wx.login()
  }
})

bug&tip:
1.bug: iOS/Android 6.3.30,在 App.onLaunch 调用 wx.login 会出现异常;
2.tip:’https://api.weixin.qq.com‘ 请求应吧code传到开发者服务器后端,在后端完成请求,示例不方便因此放到了前端仅做示例;

相关链接:

如有技术问题或对本文有反馈,请加入QQ群:
微信小程序实战5营: 微信小程序Club实战5营