微信公众号制作开发 微信小程序定制开发 网站建设制作 手机app软件开发

您的位置:首页 > 技术观点 > 信息详情

微信小程序PHP实现自动登陆源码实例

来源:山东鸿软信息科技有限公司  阅读量:413  时间:2017-07-21 00:35
这篇文章主要介绍了微信小程序自动登陆PHP源码实例并且附有源码的相关资料,需要的朋友可以参考下

微信小程序 自动登陆PHP源码实例

app.js

1.    初始化APP自动登陆

2.    您也可以在任何地方进行用户登陆验证 

3.    用法:首先在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();

    }

  }



成为您更加专业的技术合伙人

网站建设 | APP开发 | 产品服务 | 技术观点 | 关于我们      客服电子邮箱:1828087588@qq.com  客服QQ:1828087588、1421667633  电话:151-6502-2080

Copyright © 2016-2024 山东鸿软信息科技有限公司 版权所有 https://www.greatsoft.cn 鲁ICP备16026454号