微信小程序 自动登陆PHP源码实例(源码下载)


Posted in Javascript onMay 08, 2017

微信小程序 自动登陆PHP源码实例

app.js

  •     初始化APP自动登陆
  •     您也可以在任何地方进行用户登陆验证 
  •     用法:首先在js文件中定义 var app = getApp(); app.getUserDataToken();
App({
 onLaunch: function () {
  /*初始化APP自动登陆
  * 您也可以在任何地方进行用户登陆验证 
  *用法:首先在js文件中定义 var app = getApp(); app.getUserDataToken();
  */
  this.getUserDataToken();
 },
 getUserDataToken:function(){
   var that = this;
   //获取用户缓存token 此token是服务器作为用户唯一验证的标识,具体请看后端代码
   var utoken=wx.getStorageSync("utoken");
    wx.login({
     success: function (res) {
      var code=res.code;
      wx.getUserInfo({
       success: function (res) {
        wx.request({
         //用户登陆URL地址,请根据自已项目修改
         url: 'https://66018954.qcloud.la/WxApp/index.php/UserApi/userAuthSlogin',
         method:"POST",
         data: {
           utoken:utoken,
           code: code,
           encryptedData:res.encryptedData,
           iv:res.iv
         },
         fail:function(res){
         },
         success: function(res) {
          var utoken=res.data.utoken;
          //设置用户缓存
          wx.setStorageSync("utoken",utoken);
         }
        })
       }
      })
     }
   })
 }
})

php代码:

public function userAuthSlogin(){
    $content = file_get_contents ( 'php://input' );
    $content=json_decode($content,true);
    $utoken=$content["utoken"];
    if(!empty($utoken)&&S($utoken)){
      $result["success"]=1;
      $result['utoken']=$utoken;
      echo json_encode($result);
      exit();
    }
    $code=$content["code"];
    $encryptedData=$content["encryptedData"];
    $iv = $content['iv'];
    /*获取session_key*/
    $s_result=$this->getSession($code);
    $WxData = new WXBizDataCrypt($s_result['appid'],$s_result['session_key']);
    /*解密用户数据*/
    $errCode = $WxData->decryptData($encryptedData, $iv, $user_data);
    $wxap_key = md5(uniqid(md5(microtime(true)),true));
    $result=array();
    if($errCode==0){
      $user_data=json_decode($user_data,true);
      $result["success"]=1;
      $result['utoken']=$wxap_key;
      $user_id = $this->wxUserAdd($user_data);
      if($user_id < 1 || empty($user_id)){
        $result["success"]=-1;
        $result['errCode']=0;
        $result['msg']="获取用户信息出错!";
        echo json_encode($result);
        exit();
      }
      $user_data['uid']=$user_id;
      S($wxap_key,$user_data,7200);
      echo json_encode($result);
      exit();
    }else{
      $result["success"]=-1;
      $result['errCode']=$errCode;
      $result['msg']="获取用户信息出错!";
      echo json_encode($result);
      exit();
    }
  }

项目下载:http://xiazai.3water.com/201705/yuanma/zddl(3water.com).rar

Javascript 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
jQuery 删除/替换DOM元素的几种方式
May 20 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
javascript模拟评分控件实现方法
May 13 Javascript
Backbone.js的一些使用技巧
Jul 01 Javascript
JavaScript对象学习小结
Sep 02 Javascript
js和jquery实现监听键盘事件示例代码
Jun 24 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
Aug 25 Javascript
jQuery实现文章图片弹出放大效果
Apr 06 jQuery
Vue.js实现一个SPA登录页面的过程【推荐】
Apr 29 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
react MPA 多页配置详解
Oct 18 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 #jQuery
微信小程序 标签传入数据
May 08 #Javascript
Webpack实现按需打包Lodash的几种方法详解
May 08 #Javascript
JS正则表达式验证中文字符
May 08 #Javascript
bootstrap table表格插件使用详解
May 08 #Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
May 08 #Javascript
PHP实现记录代码运行时间封装类实例教程
May 08 #Javascript
You might like
PHP中PDO基础教程 入门级
2011/09/04 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
python笔记:mysql、redis操作方法
2017/06/28 Python
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
python和opencv实现抠图
2018/07/18 Python
python版百度语音识别功能
2019/07/09 Python
Python socket 套接字实现通信详解
2019/08/27 Python
Python中if有多个条件处理方法
2020/02/26 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
印度网上药店:1mg
2017/10/13 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
Java语言程序设计测试题判断题部分
2013/01/06 面试题
自荐信格式范文
2013/10/07 职场文书
初中女生自我鉴定
2013/12/19 职场文书
仓库保管员岗位职责
2013/12/20 职场文书
办理居住证介绍信
2014/01/15 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python