微信小程序 自动登陆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的变量作用域深入理解
Oct 25 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
Sep 14 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
ionic隐藏tabs的方法
Aug 29 Javascript
微信小程序实现自定义加载图标功能
Jul 19 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
js中Function引用类型常见有用的方法和属性详解
Dec 11 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
Mar 24 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 Javascript
详细谈谈JavaScript中循环之间的差异
Aug 23 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数组添加元素方法小结
2014/12/20 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
php实现的生成排列算法示例
2019/07/25 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
在Django中使用Sitemap的方法讲解
2015/07/22 Python
Python学习小技巧总结
2018/06/10 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
python能做哪些生活有趣的事情
2020/09/09 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
全球虚拟主机商:HostGator
2017/02/06 全球购物
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
妇科医生自荐信
2013/11/05 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
学校门卫岗位职责
2014/03/16 职场文书
汽车促销活动方案
2014/03/31 职场文书
集体生日活动方案
2014/08/18 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers