微信小程序和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简单的伪原创程序,配合商城采集用的
Oct 12 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
php实现网站留言板功能
Nov 04 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
浅谈Laravel队列实现原理解决问题记录
Aug 19 PHP
详解PHP实现支付宝小程序用户授权的工具类
Dec 25 PHP
PHP抽象类与接口的区别详解
Mar 21 PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 PHP
laravel框架与其他框架的详细对比
Oct 23 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内嵌函数用法实例
2015/03/20 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
Python实现根据IP地址和子网掩码算出网段的方法
2015/07/30 Python
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
scrapy爬虫实例分享
2017/12/28 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
Python之列表实现栈的工作功能
2019/01/28 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
Banana Republic英国官网:香蕉共和国,GAP集团旗下偏贵族风
2018/04/24 全球购物
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
应聘医学检验人员自荐信
2013/09/27 职场文书
文明学生事迹材料
2014/01/29 职场文书
诚信承诺书范文
2014/03/27 职场文书
敬老模范事迹
2014/05/21 职场文书
舞蹈教育学专业求职信
2014/06/29 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
垂直极限观后感
2015/06/08 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
MySQL深分页问题解决思路
2022/12/24 MySQL