微信小程序 自动登陆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 入门实例1
Jun 25 Javascript
javascript事件冒泡详解和捕获、阻止方法
Apr 12 Javascript
详谈javascript中的cookie
Jun 03 Javascript
Jquery代码实现图片轮播效果(一)
Aug 12 Javascript
基于jquery实现图片放大功能
May 07 Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 Javascript
Vue开发之封装分页组件与使用示例
Apr 25 Javascript
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
如何在JavaScript中创建具有多个空格的字符串?
Feb 23 Javascript
vue实现数字滚动效果
Jun 29 Javascript
JavaScript实现显示和隐藏图片
Apr 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 UTF8编码内的繁简转换类
2009/07/20 PHP
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
php的ajax简单实例
2014/02/27 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php英文单词统计器
2016/06/23 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
jQuery学习笔记之2个小技巧
2015/01/19 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
express express-session的使用小结
2018/12/12 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
Python 探针的实现原理
2016/04/23 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
Python中安装easy_install的方法
2018/11/18 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
承诺书范本
2015/01/21 职场文书
公司经营目标责任书
2015/01/29 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
淮海战役观后感
2015/06/11 职场文书
表彰大会新闻稿
2015/07/17 职场文书