微信小程序授权登录 php

public function isAuth()
{
    // 接收参数
    $data = $this->request->param();
    // 引入解密文件
    require_once WX_PATH . 'WXBizDataCrypt.php';
    require_once WX_PATH . 'ErrorCode.php';
    $appid = yourappid;
    $appsecret = yourappsecret;
    $grant_type = "authorization_code"; //授权(必填)
    $code = $data['code'];        //有效期5分钟 登录会话
    $encryptedData=$data['encryptedData'];
    $iv = $data['iv'];

    $curlUtil = new CurlUtil();
    $token = null;
    if ($code != null) {
        // 拼接url
        $url2 = "https://api.weixin.qq.com/sns/jscode2session?" . "appid=" . $appid . "&secret=" . $appsecret . "&js_code=" . $code . "&grant_type=" . $grant_type;
        /*Array ( [session_key] => ysU8DjVG2Dcwy5XqMPl8oA== [openid] => oj9Hn5VTPWWZMae2iqMwnxudIeuE )*/
        $res = json_decode($curlUtil->getUrl($url2), true);
        $sessionKey = $res['session_key'];
        $openid = $res['openid'];
        $this->redis->set($token, $openid);
        // 获取解密后的数据
        $pc = new \WXBizDataCrypt($appid, $sessionKey);
        //查询到的用户信息存储在$data
        $errCode = $pc->decryptData($encryptedData, $iv, $data);
        if ($errCode == 0) {
            $map['rtnCode'] = "200";
            $map['data'] = json_decode($data, true);
        } else {
            $map['rtnCode'] = "202";
            $map['rtnMsg'] = '解密失败';
        }
        $this->echoJsonSucc($map);

}else{
        $map['rtnCode'] = "101";
        $map['rtnMsg']='未授权';
        $this->echoJsonErr($map);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值