效果图(登录前后):

登录后保存到数据库的数据:

开始代码部分

首选我们在index.wxml中添加用来显示登录后显示头像和昵称的标签,增加一个登录按钮,并绑定“wxLogin”事件:

<image src="{{avataUrl}}"></image>
<text>{{nick}}</text>
<button bindtap="wxLogin">登录</button>

index.js中增加以下代码:

Page({/*** 页面的初始数据*/data: {},wxLogin: function(e) {var that = this;wx.login({success: function(res) {var code = res.code; //发送给服务器的code wx.getUserInfo({success: function(res) {var userNick = res.userInfo.nickName; //用户昵称 var avataUrl = res.userInfo.avatarUrl; //用户头像地址 var gender = res.userInfo.gender; //用户性别console.log(avataUrl),that.setData({nick: userNick,avataUrl: avataUrl}) if (code) {wx.request({url: 'http://你的域名/wxLogin.php',//服务器的地址,现在微信小程序只支持https请求,所以调试的时候请勾选不校监安全域名data: {code: code,nick: userNick,avaurl: avataUrl,sex: gender,},header: {'content-type': 'application/json'},success: function(res) {console.log(res.data);wx.setStorageSync('nick', res.data.nick); //将获取信息写入本地缓存 wx.setStorageSync('openid', res.data.openid);wx.setStorageSync('imgUrl', res.data.imgUrl);wx.setStorageSync('sex', res.data.sex);}})} else {console.log("获取用户登录态失败!");}}})},fail: function(error) {console.log('login failed ' + error);}})}
})

下面使我们的服务端,wxLogin.php,注意修改代码里的数据库地址、数据库账户和密码,以及数据库名称、表名:

<?php
text();
function text() {$code = $_GET['code']; //小程序传来的code值$nick = $_GET['nick']; //小程序传来的用户昵称$imgUrl = $_GET['avaurl']; //小程序传来的用户头像地址$sex = $_GET['sex']; //小程序传来的用户性别$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=APPSECRET&js_code=' . $code . '&grant_type=authorization_code'; //Appid为开发者appid.appSecret为开发者的appsecret,都可以从微信公众平台获取;$info = file_get_contents($url); //发送HTTPs请求并获取返回的数据,推荐使用curl$json = json_decode($info); //对json数据解码$arr = get_object_vars($json);$openid = $arr['openid'];$session_key = $arr['session_key'];$con = mysqli_connect('数据库地址', '数据库账号', '数据库密码'); //连接数据库if ($con) {if (mysqli_select_db($con, '数据库名称')) {$sql1 = "select * from 表名 where openid = '$openid'";$result = mysqli_query($con, $sql1);$result = mysqli_fetch_assoc($result);if ($result != null) { //如果数据库中存在此用户的信息,则不需要重新获取$result = json_encode($result);echo $result;} else { //没有则将数据存入数据库if ($sex == '0') {$sex = 'none';} else {$sex = '1' ? 'man' : 'women';}$sql = "insert into weixin(nick, openid, session_key, imgUrl, sex) values ('$nick','$openid','$session_key','$imgUrl','$sex')";if (mysqli_query($con, $sql)) {$arr['nick'] = $nick;$arr['imgUrl'] = $imgUrl;$arr['sex'] = $sex;$arr = json_encode($arr);echo $arr;} else {die('failed' . mysqli_error($con));}}}} else {die(mysqli_error());}
}
?>

下面是我们的数据库:

微信小程序——登录并保存用户信息到数据库相关推荐

  1. 微信小程序开发之获取用户信息

    环境 微信开发者工具 Stable 1.06.2303220 云开发控制台 v1.5.47 用户的openid和头像名称信息 openid 是小程序用户的唯一标识.注意, openid 并不是微信用户 ...

  2. 微信小程序前端解密获取用户信息

    在微信小程序中,通过用户手动可以获取到用户昵称,头像等基本信息,稍微敏感的信息无法获取到,需要通过后端解密才能获取到. 例如获取用户手机: 在网上找到cryptojs包,下载下来复制到utils文件夹 ...

  3. [小程序]微信小程序登陆并获取用户信息

    1.小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口 2.在自己的服务器端,使用app_id app_secrect code可以获取到用户的openid ...

  4. php微信小程序获取用户信息,微信小程序获取openid及用户信息的方法

    本文主要介绍微信小程序如何获取openid及用户信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家. 1. 获取openid 1.1 获取code 调用接口获取登录凭证(code ...

  5. 微信小程序云开发 删除用户信息

    编写一个微信小程序删除已注册的用户的信息. 开发平台:微信开发者工具 微信云开发删除信息的代码字段remove: 在delete.js页面添加数据库peocollection(需要提前在云数据库创建并 ...

  6. 微信小程序调整的获取用户信息API接口wx.getUserProfile

    对于微信小程序更新后的wx.getUserProfile怎么用?小程序怎么获取用户信息 getUserProfile接口文档:https://developers.weixin.qq.com/mini ...

  7. 微信小程序云开发 修改用户信息

    编写一个微信小程序修改已注册的用户的信息. 开发平台:微信开发者工具 微信云开发更新信息的代码字段update: 在update.js页面添加数据库peocollection(需要提前在云数据库创建并 ...

  8. 小程序登录授权获取用户信息

    一  登录 时序图如下: wx.login() 获取js_code 示例代码: App({ onLaunch: function() { wx.login({ success: function(re ...

  9. 微信小程序 open-type=“getUserInfo“ 获取用户信息失败 @杨章隐

    open-type="getUserInfo" 获取用户信息失败open-type="getUserInfo" 获取用户信息"微信用户"op ...

最新文章

  1. 2019阿里巴巴面试题+答案
  2. 【深度学习】DL下的3D图像和Low-level Vision问题解析
  3. 多重循环 ——— 打印九九乘法表 || 经典的打印金字塔(打印整个金字塔 打印空心金字塔 打印空心菱形金字塔)
  4. 【Spring】- Bean生命周期
  5. 深入ASP.NET数据绑定(上)
  6. RGB CMYK HSV LAB
  7. android图片分辨率改变,android 通过修改图片像素实现CircleImageView
  8. vim php psr,VIM-PHPer的福利, 将你的VIM打造成为不次于PHPStorm的IDE
  9. 人工智能AI、机器学习和深度学习的区别
  10. 软件测试行业前景,人才稀缺
  11. CarPlay iAP2附件协议
  12. Win 10 无法锁屏,快捷键win+L失效
  13. 股票分时数据获取-东方财富
  14. 外贸公司怎么群发邮件?群发邮件邮箱怎么发更高效?
  15. ChatGPT所代表的人工智能的意义
  16. 计算机取证(Computer Forensic)
  17. 用计算机弹出生僻字的歌,抖音生僻字是什么歌?抖音生僻字歌词注音完整版
  18. Latex排版常用命令
  19. M11289生鲜商城
  20. UDP打洞(UDP Hole Punching)原理

热门文章

  1. 通过yarn命令查看日志
  2. ubuntu系统终端使用命令删除文件到回收站中
  3. 扬州新华计算机学校,新华电脑学校
  4. 用kali在有password的情况下暴力破解加密的pdf
  5. 强制类型转换运算符的优先级
  6. 计算机病毒危害性分析,计算机病毒危害评析(共2220字).doc
  7. 瑞云服务云|天正电气服务云系统项目顺利验收
  8. [需求管理-1]:IT需求管理总体流程+需求管理需要的技能
  9. EBS INV 计算现有量(标准API)、保留量、可用量 ---根据批次、库存组织、子库
  10. 关于halcon基于表面的3d识别定位