微信小程序 自动登陆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 23 Javascript
DIV始终居中的js代码
Feb 17 Javascript
js查找节点的方法小结
Jan 13 Javascript
简单谈谈javascript代码复用模式
Jan 28 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
May 10 Javascript
JS使用单链表统计英语单词出现次数
Jun 16 Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
May 02 Javascript
浅谈vuex之mutation和action的基本使用
Aug 29 Javascript
前端常见跨域解决方案(全)
Sep 19 Javascript
详解vue-meta如何让你更优雅的管理头部标签
Jan 18 Javascript
如何在微信小程序中使用骨架屏的步骤
Jun 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
文章推荐系统(二)
2006/10/09 PHP
php+mysql分页代码详解
2008/03/27 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
react-router JS 控制路由跳转实例
2017/06/15 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
毕业班联欢会主持词
2014/03/27 职场文书
电力培训心得体会
2014/09/02 职场文书
大雁塔导游词
2015/02/04 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
MySQL 数据库范式化设计理论
2022/04/22 MySQL