微信小程序 自动登陆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学习5 jQuery事件模型
Feb 07 Javascript
url地址自动加#号问题说明
Aug 21 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 Javascript
JS实现超简单的鼠标拖动效果
Nov 02 Javascript
jquery对所有input type=text的控件赋值实现方法
Dec 02 Javascript
详谈js模块化规范
Jul 07 Javascript
get  post jsonp三种数据交互形式实例详解
Aug 25 Javascript
分析JS单线程异步io回调的特性
Dec 01 Javascript
vue+webpack实现异步组件加载的方法
Feb 03 Javascript
Vue使用自定义指令实现拖拽行为实例分析
Jun 06 Javascript
vue根据条件不同显示不同按钮的操作
Aug 04 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
Oct 26 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中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
2019/04/03 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
火山动力Java笔试题
2014/06/26 面试题
就业自荐书
2013/12/05 职场文书
木工主管岗位职责
2013/12/08 职场文书
《画风》教学反思
2014/04/16 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
擅自离岗检讨书
2014/09/12 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
先进集体申报材料
2014/12/25 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
信访维稳承诺书
2015/05/04 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
风之谷观后感
2015/06/11 职场文书
会议室管理制度范本
2015/08/06 职场文书
小学生运动会广播
2015/08/19 职场文书