微信小程序 自动登陆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 相关文章推荐
js实现通用的微信分享组件示例
Mar 10 Javascript
jQuery简单动画变换效果实例分析
Jul 04 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
AngularJS 入门教程之事件处理器详解
Aug 19 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
Dec 31 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
微信小程序:数据存储、传值、取值详解
May 07 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
Jun 19 Javascript
微信小程序 网络通信实现详解
Jul 23 Javascript
详解Vue中的watch和computed
Nov 09 Javascript
微信小程序反编译的实现
Dec 10 Javascript
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
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数组应用之比较两个时间的相减排序
2008/08/18 PHP
php长字符串定义方法
2012/07/12 PHP
PHP在线生成二维码代码(google api)
2013/06/03 PHP
php使用websocket示例详解
2014/03/12 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php备份数据库类分享
2015/04/14 PHP
javascript 图片裁剪技巧解读
2012/11/15 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
使用js实现数据格式化
2014/12/03 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
JavaScript中string对象
2015/06/12 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
Python机器学习之决策树算法
2017/12/22 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
python中shell执行知识点
2020/05/06 Python
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
小学生检讨书大全
2014/02/06 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
文明工地标语
2014/06/16 职场文书
销售代理协议书
2014/09/30 职场文书
保留意见审计报告
2015/06/05 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
Oracle中update和select 关联操作
2022/01/18 Oracle