2023最新使用百度账号php授权登录第三方网站

本文分享了如何在2023年使用PHP通过curl实现百度账号授权登录第三方网站的方法,解决了file_get_contents()函数报错的问题。提供了一个示例地址和经过调试成功的源代码。

示例地址:https://www.goodtools.xyz/login/login_index.php

使用chatgpt推荐的file_get_contents()函数始终报错,因此多次调试后换用curl成功,源代码如下,网上各种各样的百度php登录代码都试了一遍,都不行,分享出来给需要的人

if (isset($_GET['code'])) {
    // 获取code
    $code = $_GET['code'];
    echo 'code为' . $code;
    $client_id = '你的id';
    $client_secret = '你的secret';
    $redirect_uri = '百度工程里的回调地址';

    $url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code=$code&client_id=$client_id&client_secret=$client_secret&redirect_uri=$redirect_uri";
    // echo "<br/>"; //调试用
    // echo $url; //调试用
    //使用curl获取百度返回的json;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $response = curl_exec($ch);
    if ($response === false) {
        $error = error_get_last();
        echo "<br/>" . "错误说明:";
        var_dump($error); // 输出错误消息的详细信息
        $error = curl_error($ch);
        echo "cURL Error: " . $error;
    } else {
    $data = json_decode($response, true);
    // echo "<br/>"; //调试用
    // echo 'response=' . $response;//调试用
    // echo "<br/>";//调试用
    // echo 'data=';//调试用
    // print_r($data); // 调试用,输出数组
    // 使用访问令牌获取用户信息
    $access_token = $data['access_token'];
    echo 'access_token'.$access_token;// 调试用,输出数组
    $urlt = "https://openapi.baidu.com/rest/2.0/passport/users/getLoggedInUser?access_token=$access_token";
    $cht = curl_init($urlt);
    curl_setopt($cht, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($cht, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($cht, CURLOPT_SSL_VERIFYPEER, false);
    $responset = curl_exec($cht);
    if ($responset === false) {
        $error = error_get_last();
        echo "<br/>" . "错误说明:";
        var_dump($error); // 输出错误消息的详细信息
    }
    $user_info = json_decode($responset, true);
    // 获取用户信息
    $uname = $user_info['uname'];
    $portrait = $user_info['portrait'];

    // 显示用户信息
    echo '<h1>欢迎您,' . $uname . '</h1>';
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值