微信小程序 自动登陆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 学习第五课 Ajax 使用说明
May 17 Javascript
js将long日期格式转换为标准日期格式实现思路
Apr 07 Javascript
js实现双击图片放大单击缩小的方法
Feb 17 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 Javascript
jquery+php随机生成红包金额数量代码分享
Aug 27 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
Nov 18 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 Javascript
JavaScript工具库之Lodash详解
Jun 15 Javascript
jquery向后台提交数组的代码分析
Feb 20 jQuery
深入了解Vue.js 混入(mixins)
Jul 23 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
PHP可变函数的使用详解
2013/06/14 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
cakephp常见知识点汇总
2017/02/24 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
详解python logging日志传输
2020/07/01 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
《匆匆》教学反思
2014/02/22 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
python - asyncio异步编程
2021/04/06 Python
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL