微信小程序学习笔记之登录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 获取Mouse Position(鼠标坐标)的代码
Sep 21 Javascript
关于jQuery中.attr()和.prop()的问题探讨
Sep 06 Javascript
js实现鼠标感应图片展示的方法
Feb 27 Javascript
JQuery中DOM实现事件移除的方法
Jun 13 Javascript
快速学习jQuery插件 Cookie插件使用方法
Dec 01 Javascript
jQuery实现摸拟alert提示框
May 22 Javascript
AngularJS入门教程之过滤器详解
Aug 19 Javascript
angular4笔记系列之内置指令小结
Nov 09 Javascript
详解用Webpack与Babel配置ES6开发环境
Mar 12 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
Mar 05 Javascript
通过angular CDK实现页面元素拖放的步骤详解
Jul 01 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
如何开始收听短波广播
2021/03/01 无线电
深入分析PHP引用(&amp;)
2014/09/04 PHP
smarty实现多级分类的方法
2014/12/05 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
Bootstrap每天必学之按钮(Button)插件
2016/04/25 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Python生成验证码实例
2014/08/21 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
使用python+whoosh实现全文检索
2019/12/09 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
优秀演讲稿范文
2013/12/29 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
食品安全标语
2014/06/07 职场文书
深入理解python多线程编程
2021/04/18 Python
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript