微信小程序 自动登陆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 相关文章推荐
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
jquery tab插件精简版分享
Sep 10 Javascript
js获取当月最后一天实例代码
Nov 19 Javascript
JS弹出层的显示与隐藏示例代码
Dec 27 Javascript
jquery实现checkbox全选全不选的简单实例
Dec 31 Javascript
jQuery实现鼠标划过添加和删除class的方法
Jun 26 Javascript
写给小白的JavaScript引擎指南
Dec 04 Javascript
如何用JS判断两个数字的大小
Jul 21 Javascript
jQuery异步提交表单的两种方式
Sep 13 Javascript
通过一次报错详细谈谈Point事件
May 17 Javascript
讲解vue-router之什么是动态路由
May 28 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
May 09 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模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
2013/12/14 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
python入门教程之基本算术运算符
2020/11/13 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
公司同意接收函
2014/01/13 职场文书
素质拓展感言
2014/01/29 职场文书
《问银河》教学反思
2014/02/19 职场文书
爱心募捐感谢信
2015/01/22 职场文书
财政局长个人总结
2015/03/04 职场文书
个人政治思想总结
2015/03/05 职场文书
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL