ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PHP网站QQ登录如何使用code换取access_token并且获取用户信息?

PHP网站QQ登录如何使用code换取access_token并且获取用户信息? ?php session_start(); // 你的QQ互联应用的APP_ID和APP_KEY $app_id YOUR_APP_ID; $app_key YOUR_APP_KEY; // 1. 用户点击QQ登录后你的网站引导用户跳转到QQ登录页面前面步骤已说明 // 2. 用户授权后QQ会重定向用户回到你的网站并带上code参数 if (isset($_GET[code])) { // 防止CSRF攻击的state验证前面步骤已说明 // ... // 使用code换取access_token $token_url https://graph.qq.com/oauth2.0/token?grant_typeauthorization_codeclient_id{$app_id}client_secret{$app_key}code{$_GET[code]}redirect_uriYOUR_REDIRECT_URI; $response file_get_contents($token_url); $token_data json_decode($response, true); // 检查是否成功获取access_token if (isset($token_data[access_token])) { $access_token $token_data[access_token]; // 使用access_token获取用户OpenID用户的唯一标识 $openid_url https://graph.qq.com/oauth2.0/me?access_token{$access_token}; $openid_response file_get_contents($openid_url); $openid_data json_decode($openid_response, true); $openid $openid_data[openid]; // 可选使用access_token和OpenID获取用户详细信息 $user_info_url https://graph.qq.com/user/get_user_info?access_token{$access_token}oauth_consumer_key{$app_id}openid{$openid}formatjson; $user_info_response file_get_contents($user_info_url); $user_info json_decode($user_info_response, true); // 打印用户信息例如昵称和头像URL echo QQ昵称: . $user_info[nickname] . br; echo 头像URL: . $user_info[figureurl_qq_2] . br; // 可能有不同的头像尺寸可选 // 这里你可以将用户信息存储到你的网站数据库中或者创建用户会话等。 } else { // 处理错误情况例如显示错误信息或者重定向用户重新授权。 echo 获取access_token失败; } } else { // 用户没有授权或者授权后没有正确重定向回来。处理错误或者引导用户重新登录。 echo 未收到授权码; } ?想象一下你去游乐园玩但是游乐园要求你先去QQ那里报个到登录QQ会给你一个小牌子令牌你拿着牌子回到游乐园就可以进去了。这个过程就像是我们现在做的QQ登录。报到登录你先去QQ那里报到告诉QQ你要去游乐园玩。QQ会确认你的身份然后给你一个特殊的小牌子这个牌子就是code。换牌子换取access_token你拿着code这个小牌子回到游乐园门口游乐园会让你去一个特别的地方API用这个小牌子换一个更大的通行证access_token。这个通行证是游乐园和QQ都认可的表示你是已经报过到的人。证明身份获取用户信息有了通行证access_token之后你就可以去游乐园的另一个地方另一个API告诉他们你的通行证号码。他们会用这个号码查到你是谁然后告诉你你的座位号OpenID还会给你一些额外的信息比如你的名字昵称和你的照片头像。所以整个过程就像是你去游乐园玩先报到然后换通行证最后用通行证证明自己的身份并获取一些个人信息。这样游乐园就知道你是谁你可以进去玩了
返回列表