微信小程序 自动登陆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 相关文章推荐
jQuery实现的类flash菜单效果代码
May 17 Javascript
JS实现图片预加载无需等待
Dec 21 Javascript
JS判断是否360安全浏览器极速内核的方法
Jan 29 Javascript
jQuery oLoader实现的加载图片和页面效果
Mar 14 Javascript
javascript使用Promise对象实现异步编程
Mar 01 Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 Javascript
jQuery表单验证简单示例
Oct 17 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
Jul 25 Javascript
vue页面离开后执行函数的实例
Mar 13 Javascript
小程序实现多选框功能
Oct 30 Javascript
JavaScript中的连续赋值问题实例分析
Jul 12 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动态页生成静态页的3种常用方法
2014/11/13 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
javascript 数组排序函数
2009/08/20 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
Python字符遍历的艺术
2008/09/06 Python
Python 命令行参数sys.argv
2008/09/06 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
python实现ID3决策树算法
2017/12/20 Python
python django model联合主键的例子
2019/08/06 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
大学生饮食配送创业计划书
2014/01/04 职场文书
职工运动会邀请函
2014/02/02 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
六年级作文之预言作文
2019/10/25 职场文书
Apache Hudi数据布局黑科技降低一半查询时间
2022/03/31 Servers