微信小程序学习笔记之登录API与获取用户信息操作图文详解


Posted in Javascript onMarch 29, 2019

本文实例讲述了微信小程序学习笔记之登录API与获取用户信息操作。分享给大家供大家参考,具体如下:

前面介绍了微信小程序跳转页面、传递参数获得数据,这里来分析一下登录API与获取用户信息操作方法。

【小程序登录】wx.login()

app.js:

App({
 onLaunch: function () {
  // 登录
  wx.login({
   success: function (res) {
    if (res.code) {
     //发起网络请求
     wx.request({
      url: 'https://www.msllws.top/delcode.php',
      data: {
       code: res.code
      }
     })
    } else {
     console.log('登录失败!' + res.errMsg)
    }
   }
  });
 }
})

初始化后得到了临时登录凭证code,使用wx.request()发送code,请求后台接口获取【会话密钥session_key】和【用户唯一标识openid】,满足UnionID下发条件时还可以获得【用户在开放平台的唯一标识符unionid】。

后台接收code的接口delcode.php:

<?php 
  $code = $_GET['code'];
  $appid = 'wx1aebd07bdcf596b8';
  $secret = '9ee8211007b81efd8c11d7d82d3b8658';
  $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
  $res = file_get_contents($url);

  //(省略业务逻辑:保存返回结果中的openid与用户userid关联......)

  echo $res;

 请求返回结果:

微信小程序学习笔记之登录API与获取用户信息操作图文详解

(unionid需要小程序绑定已认证的微信开放平台才可以获得)

【获取用户信息】wx.getUserInfo()

首先借助button来授权登录,login.wxml:

<open-data type="userAvatarUrl"></open-data>
<open-data type="userNickName"></open-data>

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

login.js如下:

Page({
 data: {
  //判断getUserInfo是否在当前版本可用
  canIUse: wx.canIUse('button.open-type.getUserInfo')
 },
 bindGetUserInfo(e) {
  console.log(e.detail.userInfo)
 }
})

首次点击button按钮提示微信授权,允许后调用bindGetUserInfo函数打印获得的用户信息

微信小程序学习笔记之登录API与获取用户信息操作图文详解

微信小程序学习笔记之登录API与获取用户信息操作图文详解

此时修改login.js如下,使用wx.getSetting()获得用户信息 

(调用wx.getUserInfo()之前需要调用wx.getSetting()获取用户当前的授权状态,返回结果中如果包含【scope.userInfo】,说明用户已对用户信息进行授权,可以直接调用wx.getUserInfo()获取用户信息)

Page({
 data: {
  //判断getUserInfo是否在当前版本可用
  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)
 }
})

重新编译,页面加载获得同上用户信息:

微信小程序学习笔记之登录API与获取用户信息操作图文详解

此时再点击button按钮不再提示授权确认信息。 

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
引用 js在IE与FF之间的区别详细解析
Nov 20 Javascript
js charAt的使用示例
Feb 18 Javascript
jquery获取radio值(单选组radio)
Oct 16 Javascript
超棒的响应式布局jQuery插件Freetile.js
Nov 17 Javascript
浅析Node.js的Stream模块中的Readable对象
Jul 29 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
微信小程序 下拉菜单简单实例
Apr 13 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
Jul 03 Javascript
Vue头像处理方案小结
Jul 26 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
Sep 18 Javascript
原生js实现无缝轮播图效果
Jan 28 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 #Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
Mar 29 #Javascript
详解a标签添加onclick事件的几种方式
Mar 29 #Javascript
node(koa2) web应用模块介绍详解
Mar 29 #Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 #Javascript
浅谈js闭包理解
Mar 28 #Javascript
微信小程序中转义字符的处理方法
Mar 28 #Javascript
You might like
SONY ICF-SW7600的电路分析
2021/03/02 无线电
第九节--绑定
2006/11/16 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
PHP多文件上传实例
2015/07/09 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
2015/12/18 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
jquery $.each() 使用小探
2013/08/23 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
vue+moment实现倒计时效果
2019/08/26 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
js实现批量删除功能
2020/08/27 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
python实现淘宝购物系统
2019/10/25 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
网站创业计划书
2014/04/30 职场文书
教师节宣传方案
2014/05/23 职场文书
项目合作协议书
2014/09/23 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
体检通知范文
2015/04/21 职场文书
python tkinter模块的简单使用
2021/04/07 Python
Python上下文管理器Content Manager
2021/06/26 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
MySQL 计算连续登录天数
2022/05/11 MySQL