微信小程序学习笔记之登录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数组去重的问题小结
Jan 24 Javascript
jQuery中的$.ajax()方法应用
May 06 Javascript
Jquery给基本控件的取值、赋值示例
May 23 Javascript
javascript自定义滚动条实现代码
Apr 20 Javascript
jquery easyUI中ajax异步校验用户名
Aug 19 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
Dec 13 Javascript
基于BootStrap实现简洁注册界面
Jul 20 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 Javascript
javascript实现摄像头拍照预览
Sep 30 Javascript
如何基于js判断浏览器版本
Feb 20 Javascript
Vue基于localStorage存储信息代码实例
Nov 16 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延迟静态绑定示例分享
2014/06/22 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
jquery拖动层效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
Python中使用动态变量名的方法
2014/05/06 Python
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
python多进程读图提取特征存npy
2019/05/21 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
用python写测试数据文件过程解析
2019/09/25 Python
python异常处理和日志处理方式
2019/12/24 Python
python多线程使用方法实例详解
2019/12/30 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
大学军训心得体会800字
2016/01/11 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
Python中的datetime包与time包包和模块详情
2022/02/28 Python