微信小程序 自动登陆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提供睡眠功能(sleep) 自编译JS引擎
Aug 16 Javascript
jquery中toggle函数交替使用问题
Jun 22 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
Jun 17 Javascript
jquery实现下拉框左右选择功能
Feb 21 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
Feb 23 Javascript
Angular 容器部署的方法
Apr 17 Javascript
微信小程序收藏功能的实现代码
Jun 12 Javascript
单页面vue引入百度统计的使用方法示例详解
Oct 13 Javascript
一文快速了解JQuery中的AJAX
May 31 jQuery
Vue 中 template 有且只能一个 root的原因解析(源码分析)
Apr 11 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
基于vue实现微博三方登录流程解析
Nov 04 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 Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
寻找网站后台地址的python脚本
2014/09/01 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
Python 从相对路径下import的方法
2018/12/04 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python实现淘宝购物系统
2019/10/25 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
关于Python解包知识点总结
2020/05/05 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
怎样让char类型的东西转换成int类型
2013/12/09 面试题
年会搞笑主持词
2014/03/27 职场文书
企业总经理任命书
2014/06/05 职场文书
语文教师个人工作总结
2015/02/06 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
奖励通知
2015/04/22 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers