微信小程序——登录并保存用户信息到数据库
效果图(登录前后):
登录后保存到数据库的数据:
开始代码部分
首选我们在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());}
}
?>
下面是我们的数据库:
微信小程序——登录并保存用户信息到数据库相关推荐
- 微信小程序开发之获取用户信息
环境 微信开发者工具 Stable 1.06.2303220 云开发控制台 v1.5.47 用户的openid和头像名称信息 openid 是小程序用户的唯一标识.注意, openid 并不是微信用户 ...
- 微信小程序前端解密获取用户信息
在微信小程序中,通过用户手动可以获取到用户昵称,头像等基本信息,稍微敏感的信息无法获取到,需要通过后端解密才能获取到. 例如获取用户手机: 在网上找到cryptojs包,下载下来复制到utils文件夹 ...
- [小程序]微信小程序登陆并获取用户信息
1.小程序js端调用框架登陆API,获取到一个临时code,拿着这个code去调用自己的服务端接口 2.在自己的服务器端,使用app_id app_secrect code可以获取到用户的openid ...
- php微信小程序获取用户信息,微信小程序获取openid及用户信息的方法
本文主要介绍微信小程序如何获取openid及用户信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家. 1. 获取openid 1.1 获取code 调用接口获取登录凭证(code ...
- 微信小程序云开发 删除用户信息
编写一个微信小程序删除已注册的用户的信息. 开发平台:微信开发者工具 微信云开发删除信息的代码字段remove: 在delete.js页面添加数据库peocollection(需要提前在云数据库创建并 ...
- 微信小程序调整的获取用户信息API接口wx.getUserProfile
对于微信小程序更新后的wx.getUserProfile怎么用?小程序怎么获取用户信息 getUserProfile接口文档:https://developers.weixin.qq.com/mini ...
- 微信小程序云开发 修改用户信息
编写一个微信小程序修改已注册的用户的信息. 开发平台:微信开发者工具 微信云开发更新信息的代码字段update: 在update.js页面添加数据库peocollection(需要提前在云数据库创建并 ...
- 小程序登录授权获取用户信息
一 登录 时序图如下: wx.login() 获取js_code 示例代码: App({ onLaunch: function() { wx.login({ success: function(re ...
- 微信小程序 open-type=“getUserInfo“ 获取用户信息失败 @杨章隐
open-type="getUserInfo" 获取用户信息失败open-type="getUserInfo" 获取用户信息"微信用户"op ...
最新文章
- 2019阿里巴巴面试题+答案
- 【深度学习】DL下的3D图像和Low-level Vision问题解析
- 多重循环 ——— 打印九九乘法表 || 经典的打印金字塔(打印整个金字塔 打印空心金字塔 打印空心菱形金字塔)
- 【Spring】- Bean生命周期
- 深入ASP.NET数据绑定(上)
- RGB CMYK HSV LAB
- android图片分辨率改变,android 通过修改图片像素实现CircleImageView
- vim php psr,VIM-PHPer的福利, 将你的VIM打造成为不次于PHPStorm的IDE
- 人工智能AI、机器学习和深度学习的区别
- 软件测试行业前景,人才稀缺
- CarPlay iAP2附件协议
- Win 10 无法锁屏,快捷键win+L失效
- 股票分时数据获取-东方财富
- 外贸公司怎么群发邮件?群发邮件邮箱怎么发更高效?
- ChatGPT所代表的人工智能的意义
- 计算机取证(Computer Forensic)
- 用计算机弹出生僻字的歌,抖音生僻字是什么歌?抖音生僻字歌词注音完整版
- Latex排版常用命令
- M11289生鲜商城
- UDP打洞(UDP Hole Punching)原理
热门文章
- 通过yarn命令查看日志
- ubuntu系统终端使用命令删除文件到回收站中
- 扬州新华计算机学校,新华电脑学校
- 用kali在有password的情况下暴力破解加密的pdf
- 强制类型转换运算符的优先级
- 计算机病毒危害性分析,计算机病毒危害评析(共2220字).doc
- 瑞云服务云|天正电气服务云系统项目顺利验收
- [需求管理-1]:IT需求管理总体流程+需求管理需要的技能
- EBS INV 计算现有量(标准API)、保留量、可用量 ---根据批次、库存组织、子库
- 关于halcon基于表面的3d识别定位