微信小程序 自动登陆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 相关文章推荐
JavaScript写的一个自定义弹出式对话框代码
Jan 17 Javascript
Jquery取得iframe下内容的方法
Nov 18 Javascript
基于JavaScript实现网页倒计时自动跳转代码
Dec 28 Javascript
angular源码学习第一篇 setupModuleLoader方法
Oct 20 Javascript
jQuery html表格排序插件tablesorter使用方法详解
Feb 10 Javascript
详解vue-cli之webpack3构建全面提速优化
Dec 25 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
Jul 23 Javascript
vue(2.x,3.0)配置跨域代理
Nov 27 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
May 11 Javascript
vue props 一次传多个值实例
Jul 22 Javascript
使用eslint和githooks统一前端风格的技巧
Jul 29 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自定义函数获取汉字首字母的方法
2016/12/01 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
[JS]点出统计器
2020/10/11 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
2017/02/12 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
北美最大的手工艺品零售商之一:Michaels Stores
2019/02/27 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
环保建议书500字
2014/05/14 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL