微信登录

小程序登录

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html

登录流程

微信登录

  • 简单代码示例
wx.checkSession({
    success() {
        // session_key 未过期,并且在本生命周期一直有效
    },
    fail() {
        // session_key 已经失效,需要重新执行登录流程
        wx.login({
            success(res) {
                console.log(res); // {errMsg: "login:ok", code: "0210xBz62OfDHQ0CgwD62pt1A620xBzM"}
                if (res.code) {
                    // ajax调用后台登录
                } else {
                    console.log('登录失败!', res)
                    wx.showToast({
                        title: '登录失败!',
                        icon: 'none'
                    })
                }
            }
        })
    }
})  
  • 说明
    • wx对象只有在小程序环境才存在,可以看做是浏览器环境的windows对象一样为内置对象
    • 使用code换取用户openid(用户唯一标识),此时可根据openid自动注册用户或在数据库中查询此用户,并生成自定义access_token来标识用户登录状态
    • 如果需要获取用户信息,则需要用户授权,见下文

获取用户信息

<!-- 需要使用 button 来授权登录 -->
<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button>
<view wx:else>请升级微信版本</view>


Page({
  data: {
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  onLoad: function() {
    // 查看是否授权
    wx.getSetting({
      success (res){
        if (res.authSetting['scope.userInfo']) {
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称
          wx.getUserInfo({
            success: function(res) {
              console.log(res.userInfo)
            }
          })
        }
      }
    })
  },
  bindGetUserInfo (e) {
    // 获得用户授权,此处可以更新用户信息
    console.log(e.detail.userInfo)
  }
})

微信登录

上一篇:Zabbix通过与微信、钉钉整合实现实时告警


下一篇:关于微信小程序的一些总结