head -c 168`; //生成3rd_session
$session_db->addSession(['uid'=>$info['id'],'id'=>$session_id]); //保存session
}
if($session_id){
$this->ajaxReturn(['error_code'=>0,'sessionid'=>$session_id]); //把3rd_session返回给客户端
}else{
$this->ajaxReturn(['error_code'=>0,'sessionid'=>$session_db->getSid($info['id'])]);
}
}else{
$this->ajaxReturn(['error_code'=>'用户信息获取失败!']);
}
}
}
获取微信信息模型(包括信息解密,官方例子点击下载)
require_once ABS_APP_PATH.'/Addon/Aes/wxBizDataCrypt.php';
class WeixinModel{
// 获取微信的用户信息(openid)
public function getUserInfo($code,$encryptedData,$iv){
$appid=C('appid');
$secret=C('secret');
$grant_type='authorization_code';
$url='https://api.weixin.qq.com/sns/jscode2session';
$url= sprintf("%s?appid=%s&secret=%s&js_code=%s&grant_type=%",$url,$appid,$secret,$code,$grant_type);
$user_data=json_decode(file_get_contents($url));
$session_key= define_str_replace($user_data->session_key);
$data="";
$wxBizDataCrypt=new \WXBizDataCrypt($appid,$session_key);
$errCode=$wxBizDataCrypt->decryptData($encryptedData,$iv,$data);
return ['errCode'=>$errCode,'data'=>json_decode($data),'session_key'=>$session_key];
}
}
javascript
getUserInfo: function(cb) {
var that = this
if (this.globalData.userInfo) {
typeof cb == "function" && cb(this.globalData.userInfo)
} else {
//调用登录接口
wx.login({
success: function(r) {
wx.getUserInfo({
success: function(res) {
that.login({
code: r.code,
iv: res.iv,
encryptedData: encodeURIComponent(res.encryptedData),
})
that.globalData.userInfo = res.userInfo
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
})
}
},
login: function(param) {
wx.request({
url: this.requestUrl('Index/weixin_login'),
data: param,
header: {
'content-type': "application/json",
},
success: function(res) {
var data = JSON.parse(res.data.trim());
wx.setStorageSync('sessionid', data.sessionid);
}
})
},以上就是小程序开发之登录实例详解的详细内容,更多请关注php中文网其它相关文章!
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。
关键词:小程序开发之登录案例详细说明