微信小程序学习笔记之登录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 相关文章推荐
javascript[js]获取url参数的代码
Oct 17 Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 Javascript
node.js中的fs.utimesSync方法使用说明
Dec 15 Javascript
解决JS请求服务器gbk文件乱码的问题
Oct 16 Javascript
js实现搜索框关键字智能匹配代码
Mar 26 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
Dec 23 Javascript
教你用十行node.js代码读取docx的文本
Mar 08 Javascript
老生常谈ES6中的类
Jul 31 Javascript
vue引入jq插件的实例讲解
Sep 12 Javascript
详解微信小程序中的页面代码中的模板的封装
Oct 12 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
WAF的正确bypass
2017/01/05 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
python使用Matplotlib画饼图
2018/09/25 Python
破解安装Pycharm的方法
2018/10/19 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
手写一个python迭代器过程详解
2019/08/27 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
opencv+python实现均值滤波
2020/02/19 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
给护士表扬信
2014/01/19 职场文书
假期安全教育广播稿
2014/10/04 职场文书
校长师德表现自我评价
2015/03/05 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript