微信小程序 自动登陆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 解析读取XML文档 实例代码
Jul 07 Javascript
jQuery 页面 Mask实现代码
Jan 09 Javascript
javascript跨域刷新实现代码
Jan 01 Javascript
javascript学习笔记(十一) 正则表达式介绍
Jun 20 Javascript
原生javascript实现的一个简单动画效果
Mar 30 Javascript
bootstrap模态框消失问题的解决方法
Dec 02 Javascript
vue生成token保存在客户端localStorage中的方法
Oct 25 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
Vue-router 切换组件页面时进入进出动画方法
Sep 01 Javascript
vue项目中使用bpmn-自定义platter的示例代码
May 11 Javascript
详解vue路由
Aug 05 Javascript
vue实现简单加法计算器
Oct 22 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注入实例
2006/10/09 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
JavaScript中this详解
2015/09/01 Javascript
javascript弹出窗口实现代码
2015/11/12 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
2017/02/10 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
layui使用label标签的方法
2019/09/14 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
Python实现类继承实例
2014/07/04 Python
Python实现各种排序算法的代码示例总结
2015/12/11 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
生物化学研究助理员求职信
2013/10/09 职场文书
医院后勤自我鉴定
2013/10/13 职场文书
个人自荐书
2013/12/20 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python