微信小程序和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开发模式(简写版)
Mar 15 PHP
php 一元分词算法
Nov 30 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
Jul 22 PHP
php实现计数器方法小结
Jan 05 PHP
php关联数组快速排序的方法
Apr 17 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 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获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
PHP多维数组排序array详解
2017/11/21 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
[01:38]2018DOTA2亚洲邀请赛主赛事第二日现场采访 神秘商人痛陈生计不易
2018/04/05 DOTA
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
联想香港官方网站及网店:Lenovo香港
2018/04/13 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
实习教师自我鉴定
2013/12/09 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
2014年圣诞节促销方案
2014/03/14 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
企业环保标语
2014/06/10 职场文书
MySQL系列之三 基础篇
2021/07/02 MySQL
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle