微信小程序和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安装为Apache DSO
Oct 09 PHP
实现“上一页”和“下一页按钮
Oct 09 PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
PHP实现把数字ID转字母ID
Aug 12 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
PHP编程之设置apache虚拟目录
Jul 08 PHP
PHP序列化操作方法分析
Sep 28 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 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
php2html php生成静态页函数
2008/12/08 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
php加密解密字符串示例
2016/10/13 PHP
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
解决Antd Table表头加Icon和气泡提示的坑
2020/11/17 Javascript
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
财务会计专业应届毕业生求职信
2013/10/18 职场文书
外语系毕业生找工作的求职信
2013/11/28 职场文书
大学生旅游业创业计划书
2014/01/29 职场文书
美术指导求职信
2014/03/17 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
中秋节寄语2015
2015/03/24 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
行政处罚告知书
2015/07/01 职场文书
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS