微信小程序 自动登陆PHP源码实例(源码下载)
微信小程序自动登陆PHP源码实例
app.js
- 初始化APP自动登陆
- 您也可以在任何地方进行用户登陆验证
- 用法:首先在js文件中定义varapp=getApp();app.getUserDataToken();
App({
onLaunch:function(){
/*初始化APP自动登陆
*您也可以在任何地方进行用户登陆验证
*用法:首先在js文件中定义varapp=getApp();app.getUserDataToken();
*/
this.getUserDataToken();
},
getUserDataToken:function(){
varthat=this;
//获取用户缓存token此token是服务器作为用户唯一验证的标识,具体请看后端代码
varutoken=wx.getStorageSync("utoken");
wx.login({
success:function(res){
varcode=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){
varutoken=res.data.utoken;
//设置用户缓存
wx.setStorageSync("utoken",utoken);
}
})
}
})
}
})
}
})
php代码:
publicfunctionuserAuthSlogin(){
$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;
echojson_encode($result);
exit();
}
$code=$content["code"];
$encryptedData=$content["encryptedData"];
$iv=$content['iv'];
/*获取session_key*/
$s_result=$this->getSession($code);
$WxData=newWXBizDataCrypt($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']="获取用户信息出错!";
echojson_encode($result);
exit();
}
$user_data['uid']=$user_id;
S($wxap_key,$user_data,7200);
echojson_encode($result);
exit();
}else{
$result["success"]=-1;
$result['errCode']=$errCode;
$result['msg']="获取用户信息出错!";
echojson_encode($result);
exit();
}
}
项目下载:http://xiazai.jb51.net/201705/yuanma/zddl(jb51.net).rar