微信小程序学习笔记之登录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基础教程之break和continue语句
Jan 18 Javascript
限制上传文件大小和格式的jQuery插件实例
Jan 24 Javascript
JavaScript获取浏览器信息的方法
Nov 20 Javascript
javascript实现禁止复制网页内容汇总
Dec 30 Javascript
JS实现动态生成表格并提交表格数据向后端
Nov 25 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
Mar 29 Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 Javascript
详解用vue-cli来搭建vue项目和webpack
Apr 20 Javascript
JS简单实现数组去重的方法分析
Oct 14 Javascript
JS中使用textPath实现线条上的文字
Dec 25 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
Nov 05 Javascript
Koa 中的错误处理解析
Apr 09 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和ACCESS写聊天室(一)
2006/10/09 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
django rest framework 过滤时间操作
2020/07/12 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
留学生如何写好自荐信
2013/12/27 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书