微信小程序 自动登陆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_10_对象模型
Oct 16 Javascript
jQuery(非HTML5)可编辑表格实现代码
Dec 11 Javascript
Jquery实现控件的隐藏和显示实例
Feb 08 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
js读取json的两种常用方法示例介绍
Oct 19 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
May 13 Javascript
JavaScript中重名的函数与对象示例详析
Sep 28 Javascript
详解React服务端渲染从入门到精通
Mar 28 Javascript
Vue.extend实现挂载到实例上的方法
May 01 Javascript
使用xampp将angular项目运行在web服务器的教程
Sep 16 Javascript
JavaScript中的相等操作符使用详解
Dec 21 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
May 15 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
星际RPG字典
2020/03/04 星际争霸
PHP安装攻略:常见问题解答(一)
2006/10/09 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
PHP中常用的魔术方法
2017/04/28 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
Python yield使用方法示例
2013/12/04 Python
Python使用xlrd读取Excel格式文件的方法
2015/03/10 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
2017/07/06 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
python读写配置文件操作示例
2019/07/03 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
中学清明节活动总结
2014/07/04 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
毕业生入职感言
2015/07/31 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL
SQL Server中使用表变量和临时表
2022/05/20 SQL Server
SQL Server中搜索特定的对象
2022/05/25 SQL Server