微信小程序学习笔记之登录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 相关文章推荐
jQuery实战之品牌展示列表效果
Apr 10 Javascript
Mac地址验证的javascript代码
Nov 09 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
jquery.cookie.js用法实例详解
Dec 25 Javascript
JS取模、取商及取整运算方法示例
Oct 13 Javascript
ES6概念 ymbol.for()方法
Dec 25 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 Javascript
JavaScript实现QQ列表展开收缩扩展功能
Oct 30 Javascript
利用Node.js批量抓取高清妹子图片实例教程
Aug 02 Javascript
微信小程序canvas绘制圆角base64图片的实现
Aug 18 Javascript
js正则匹配多个全部数据问题
Dec 20 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
Jul 21 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
PHP与MySQL开发的8个技巧小结
2010/12/17 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
js中this对象用法分析
2018/01/05 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
简单的python协同过滤程序实例代码
2018/01/31 Python
Python多项式回归的实现方法
2019/03/11 Python
Python气泡提示与标签的实现
2020/04/01 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
行政助理岗位职责
2013/11/10 职场文书
车间班组长岗位职责
2013/11/13 职场文书
初中班主任评语大全
2014/04/24 职场文书
董事长致辞
2015/07/29 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书