PHP后台实现微信小程序登录
微信小程序官方给了十分详细的登陆时序图,当然为了安全着想,应该加上签名加密。
微信小程序端
1).调用wx.login获取代码.2).调用wx.getUserInfo获取签名所需的原始数据,签名,加密数据.3).发起请求将获取的数据发送的后台。
login:函数{ var=thiswx。登录({ success : function(RES){ var code=RES . code;//获取代码wx.getUserInfo({ //得到原始数据,签名,加密数据成功:函数(数据){ var原始数据=数据。原始数据;var signature=data.signaturevar加密数据=data。加密数据;var iv=data . ivwx . request({ URL : '你自己的后台地址,data: { 'code' : code,' rawData' : rawData,' signature' : signature,' iv' : iv,'加密数据' :加密数据},method: 'GET ',success 3360 function(info){ console。日志(信息);} }) } }) }, }) }服务端
需下载微信官方解密文件。 —— [ 用户数据的签名验证和加解密]
1.解压后会出现不同语言的文件包,这里用的是PHP,将文件夹放到小贩目录下。 2.根据登陆凭证密码获取会话密钥和openid .3。数据签名校验。 4.数据解密。 5.生成第三方第三届会议并返回微信小程序端。
/* *登录(调用wx.login获取)* @ param $代码字符串* @param $rawData字符串* @ param $ signatrue字符串* @param $encryptedData字符串* @param $iv字符串* @返回$代码成功码* @return $session3rd第三方第三届会议* @返回$数据用户数据*/公共函数login() { //开发者使用登陆凭证密码获取会话密钥和openid $ APPID=//自己配置$ AppSecret=//自己配置$ code=input(' code ');$ URL='https://api.weixin.qq.com/sns/jscode2session?appid=' .$APPID .秘密=' .$AppSecret .js_code=' .$代码grant _ type=authorization _ code ';$ arr=$ this-vget($ URL);//一个使用卷曲实现的得到方法请求$arr=json_decode($arr,true);$ OpenID=$ arr[' OpenID '];$ session _ key=$ arr[' session _ key '];//数据签名校验$ signature=input(' signature ');$ raw data=request :3360 instance()-post(' raw data ');$signature2=sha1($rawData .$ session _ key);if($签名!=$ signature 2){ 0返回json(['code'=500,' msg'='数据签名验证失败!']);}供应商(' PHP。WxBizDataCrypt’);//加载解密文件,在官方有下载$加密数据=输入('加密数据');$iv=输入(' iv ');$pc=new \WXBizDataCrypt($APPID,$ session _ key);$ errCode=$ PC-decrypteddata($ encryptedData,$iv,$ data);//其中$数据包含用户的所有数据$ data=JSON _ decode($ data);if($ errCode==0){ dump($ data);死去;//打印解密所得的用户信息} else { echo $ errCode//打印失败信息} }公共函数vget($ URL){ $ info=curl _ init();curl_setopt($info,CURLOPT_RETURNTRANSFER,true);curl_setopt($info,CURLOPT_HEADER,0);curl_setopt($info,CURLOPT _ NONE,0);curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($info,CURLOPT_SSL_VERIFYHOST,false);curl_setopt($info,CURLOPT_URL,$ URL);$ output=curl _ exec($ info);curl _ close($ info);返回$ output}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
版权声明:PHP后台实现微信小程序登录是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

















