微信小程序学习笔记之登录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 相关文章推荐
一个很简单的办法实现TD的加亮效果.
Jun 29 Javascript
HTML颜色选择器实现代码
Nov 23 Javascript
Javascript在IE和FireFox中的不同表现简析
Dec 03 Javascript
JavaScript+CSS无限极分类效果完整实现方法
Dec 22 Javascript
jquery点击改变class并toggle的实现代码
May 15 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
Nov 17 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
Dec 08 Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 Javascript
vue滚动插件better-scroll使用详解
Oct 18 Javascript
JavaScript使用prototype属性实现继承操作示例
May 22 Javascript
关于vue 结合原生js 解决echarts resize问题
Jul 26 Javascript
Ajax 的初步实现(使用vscode+node.js+express框架)
Jun 18 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
利用PHP动态生成VRML网页
2006/10/09 PHP
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
坏狼php学习 计数器实例代码
2008/06/15 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
在JavaScript中使用严格模式(Strict Mode)
2019/06/13 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
使用python根据端口号关闭进程的方法
2018/11/06 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
大学生社团活动总结
2014/04/26 职场文书
维修工先进事迹
2014/05/29 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python