微信小程序学习笔记之登录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 相关文章推荐
基础的prototype.js常用函数及其用法
Mar 10 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
Jul 10 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
javascript数字验证的实例代码(推荐)
Aug 20 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
Dec 06 Javascript
微信小程序实现滚动消息通知
Feb 02 Javascript
apicloud拉起小程序并传递参数的方法示例
Nov 21 Javascript
jquery 验证用户名是否重复代码实例
May 14 jQuery
详解小程序如何改变onLoad的执行时机
Nov 01 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 Javascript
vue监听滚动事件的方法
Dec 21 Vue.js
详解前端任务构建利器Gulp.js使用指南
Apr 30 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中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
JavaScript之引用类型介绍
2012/08/10 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python client使用http post 到server端的代码
2013/02/10 Python
常见python正则用法的简单实例
2016/06/21 Python
Python将图片批量从png格式转换至WebP格式
2020/08/22 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
顶岗实习接收函
2014/01/09 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
争做文明公民倡议书
2014/08/29 职场文书
银行转正自我鉴定
2014/09/29 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
业务员岗位职责范本
2015/04/03 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android