微信小程序和php的登录实现


Posted in PHP onApril 01, 2021

微信小程序和php的登录实现

首先用户登录所需的是用户的唯一标识openid,获取openid后再获取用户信息即刻存储到数据库中。
注意:若errcode为40029要新建一个小程序项目填写你的appid
若ajax请求失败,右上角详情-本地设置-勾选->不效验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书

一、前端请求

onLoad: function (options) {
    wx.login({
       success:function(res){
         //发送请求
         wx.request({
           url: 'http://localhost/test/wxlogin.php', //接口地址
           data: {code:res.code},
           header: {
             'content-type': 'application/json' //默认值
           },
           success: function (res) {
             console.log(res.data)
           }
         })
       }
     })
  },

二、php代码

首先登录微信小程序网站-开发管理-开发设置,找到你的appid和appsecret

<?php
		$code = $_GET['code'];
		$appid = '你的appid';
		$AppSecret = '你的appsecret';
		$url = "https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$AppSecret."&js_code=".$code."&grant_type=authorization_code";
		$str = file_get_contents($url);
		$json = json_decode($str);
		$arr = get_object_vars($json);
		echo $openid = $arr['openid']; //这是openid
		echo '</br>';
		echo $session_key = $arr['session_key']; //这是session_key
?>

三、获取用户信息

<!-- 如果只是展示用户头像昵称,可以使用 <open-data /> 组件 -->
	<open-data type="userAvatarUrl"></open-data>
	<open-data type="userNickName"></open-data>
	<!-- 需要使用 button 来授权登录 -->
	<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button>
	<view wx:else>请升级微信版本</view>
Page({
  data: {
    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)
  }
})

在控制台输出的信息就是获取用户的信息

四、存入数据库

这里代码就先不写了,之前获取的openid相当于用户表的主键,其他信息都在console.log(res.userInfo)里

PHP 相关文章推荐
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
php之XML转数组函数的详解
Jun 07 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
php动态生成函数示例
Mar 21 PHP
PHP中的Memcache详解
Apr 05 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
PHP常用的排序和查找算法
Aug 06 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
PHP中SESSION过期设置
Mar 09 PHP
PHP新手指南
PHP命令行与定时任务
Apr 01 #PHP
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
Apr 01 #PHP
如何判断微信付款码和支付宝付款码
Apr 01 #PHP
Laravel中获取IP的真实地理位置
Apr 01 #PHP
Jsonp劫持学习
利用ajax+php实现商品价格计算
You might like
咖啡的种类和口感
2021/03/03 新手入门
PHP通过API获取手机号码归属地
2015/05/28 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
理解Koa2中的async&amp;await的用法
2018/02/05 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
Python实现堆排序的方法详解
2016/05/03 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
Python安装whl文件过程图解
2020/02/18 Python
python中altair可视化库实例用法
2021/01/26 Python
国家助学金获奖感言
2014/01/31 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
2014年团队工作总结
2014/11/24 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
商业计划书格式、范文
2019/03/21 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
PYTHON InceptionV3模型的复现详解
2022/05/06 Python
Web应用开发TypeScript使用详解
2022/05/25 Javascript