微信小程序和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新手上路(十四)
Oct 09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
PHP音乐采集(部分代码)
Feb 14 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
php单例模式示例分享
Feb 12 PHP
PHP实现简单数字分页效果
Jul 26 PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
Laravel 实现密码重置功能
Feb 23 PHP
php使用yield对性能提升的测试实例分析
Sep 19 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
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
js常用代码段收集
2011/10/28 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
js函数的引用, 关于内存的开销
2012/09/17 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
jquery导航制件jquery鼠标经过变色效果示例
2013/12/05 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
在Python中使用列表生成式的教程
2015/04/27 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
网游商务专员求职信
2013/10/15 职场文书
业务代表的岗位职责
2013/11/16 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
员工辞退通知书
2015/04/17 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python