微信小程序 自动登陆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 相关文章推荐
打开超链需要“确认”对话框的方法
Mar 08 Javascript
prototype Element学习笔记(Element篇三)
Oct 26 Javascript
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
Mar 07 Javascript
浅谈JavaScript中指针和地址
Jul 26 Javascript
javascript学习总结之js使用技巧
Sep 02 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
Sep 04 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
Sep 08 Javascript
实例讲解Vue.js中router传参
Apr 22 Javascript
vue配置接口域名方法总结
May 12 Javascript
弱类型语言javascript中 a,b 的运算实例小结
Aug 07 Javascript
js里面的变量范围分享
Jul 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
smarty中post用法实例
2014/11/28 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
Java编程面试题
2016/04/04 面试题
中考标语大全
2014/06/05 职场文书
授权委托书(完整版)
2014/09/10 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
2019新员工心得体会
2019/06/25 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers