微信小程序wx.login()、wx.getSetting、wx.getUserInfo的区别和联系?

1、wx.login

前端使用wx.login是获取登录凭证(code),将code发送给后台,后台向微信发送请求获取用户的唯一标识(openid)及本次登录的会话密钥(session_key),然后后台传回前台自定义的登录状态,以及自定义的用户唯一标识

2、wx.geUserInfo

wx.getuserinfo是为了获取用户的相关信息

3、wx.getSetting

wx.getsetting是获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限

4、关系

所以三者之间的逻辑如下:
wx.login是用户进入app就要调用的
wx.getusrinfo是需要获取用户信息时调用的(当然如果你一开始就想要用户的信息也可以一开始就调用),且使用时需要配合wx.getsetting来使用:
使用wx.getsetting来判断用户是否已经授权你的小程序获取用户的信息,
如果已经授权的话,直接使用wx.getUserinfo来获取用户信息
如果没有授权,需要使用一个按钮来获取用户授权 <button open-type="getUserInfo" bindgetuserinfo="onGotUserInfo" >获取用户信息</button>

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序userInfo和openid是用于标识用户的信息。其中openid是每个用户在小程序中的唯一标识,而userInfo则包含了用户的基本信息,如昵称、头像等。 要获取用户的userInfo和openid,需要进行微信授权。具体步骤如下: 1. 在小程序中引入微信登录模块: ``` var app = getApp(); var util = require('../../utils/util.js'); var api = require('../../config/api.js'); Page({ data: {}, onLoad: function(options) { // 获取用户信息 wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { wx.getUserInfo({ success: res => { // 可以将 res 发送给后台解码出 unionId this.globalData.userInfo = res.userInfo // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 if (this.userInfoReadyCallback) { this.userInfoReadyCallback(res) } } }) } } }) }, }) ``` 2. 在小程序中添加授权按钮: ``` <button type="primary" open-type="getUserInfo" bindgetuserinfo="onGotUserInfo">授权登录</button> ``` 3. 在小程序中获取openid: ``` wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId wx.request({ url: api.AuthLoginByWeixin, data: { code: res.code }, success: function(res) { if (res.statusCode === 200) { // 将openid存储到本地 wx.setStorageSync('openid', res.data.openid); } else { console.log('请求失败') } } }) } }) ``` 通过以上步骤,就可以获取到用户的userInfo和openid了。其中,openid可以通过wx.getStorageSync('openid')获取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值