欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序 自动登陆PHP源码实例(源码下载)

程序员文章站 2023-11-14 10:10:58
微信小程序 自动登陆php源码实例 app.js     初始化app自动登陆     您...

微信小程序 自动登陆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();
    }
  }

项目下载: