微信小程序之微信登录

在开发微信小程序的时候,我们经常需要用到微信登录,通过wx的接口来获取微信用户的信息,然后存储到我们数据库来创建属于我们系统的用户信息。
所以我们就要使用到wx.login(),wx.getUserProfile(),这两个方法。

wx.login()

wx.login(),是调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。

​ 我们通过获取到的code,传给后端,由后端通过调用 auth.code2Session 接口,来获取用户唯一标识 OpenID、 用户在微信开放平台帐号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台帐号) 和 会话密钥 session_key。

wx.login({
      success (res) {
        console.log(res);
        if (res.code) {  //获取到code之后,传给后端,接口
          wx.request({
            url: url,
            data: {
              code: res.code,
              user_name:e.nickName
            },
            success: (res) => {
              console.log(res.data);
              if(res.data.ret){
                let userInfo = Object.assign(e,res.data)
                console.log(userInfo);
                wx.setStorage({
                  key:"userInfo",
                  data:JSON.stringify(userInfo) 
                })
              }else{
                wx.showToast({title: '登录失败',icon:'error',duration:2000})
              }
            }
          })
          
        } else {
          console.log('登录失败!' + res.errMsg)
        }
      }
    })

wx.getUserProfile()

wx.getUserProfile(),获取用户信息。页面产生点击事件(例如 buttonbindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo。该接口用于替换 wx.getUserInfo

这个是新的微信获取用户的方法了,之前的wx.getUserInfo(),已经不能弹窗了。

getUserProfile(e){
      let that = this
      wx.getUserProfile({
        desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
        success: (res) => {
          console.log(res);
        },
        fail:(res)=>{
          console.log(res);
        }
      })
    },

两者合一

但是在实际的使用的时候,我们之后点击一次来获取这些信息,所以就会出现一个问题,wx.getUserProfile(),是不能通过API调用,所以只能先调用wx.getUserProfile(),然后再去调用wx.login()
在这里插入图片描述
在这里插入图片描述

这样就可以完美获取用户的信息了,并且转化为系统需要的用户和信息

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一介青烟小生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值