PHP版QQ互联OAuth示例代码分享_PHP
由于国内QQ用户的普遍性,所以现在各大网站都尽可能的提供QQ登陆口,下面我们来看看php版,给大家参考下
/** * QQ互联 oauth * @author dyllen * */ class Oauth { //取Authorization Code Url const PC_CODE_URL = 'https://graph.qq.com/oauth2.0/authorize'; //取Access Token Url const PC_ACCESS_TOKEN_URL = 'https://graph.qq.com/oauth2.0/token'; //取用户 Open Id Url const OPEN_ID_URL = 'https://graph.qq.com/oauth2.0/me'; //用户授权之后的回调地址 public $redirectUri = null; // App Id public $appid = null; //App Key public $appKey = null; //授权列表 //字符串,多个用逗号隔开 public $scope = null; //授权code public $code = null; //续期access token的凭证 public $refreshToken = null; //access token public $accessToken = null; //access token 有效期,单位秒 public $expiresIn = null; //state public $state = null; public $openid = null; //construct public function __construct($config=[]) { foreach($config as $key => $value) { $this->$key = $value; } } /** * 得到获取Code的url * @throws \InvalidArgumentException * @return string */ public function codeUrl() { if (!$this->redirectUri) { throw new \Exception('parameter $redirectUri must be set.'); } $query = [ 'response_type' => 'code', 'client_id' => $this->appid, 'redirect_uri' => $this->redirectUri, 'state' => $this->getState(), 'scope' => $this->scope, ]; return self::PC_CODE_URL . '?' . http_build_query($query); } /** * 取access token * @throws Exception * @return boolean */ public function getAccessToken() { $params = [ 'grant_type' => 'authorization_code', 'client_id' => $this->appid, 'client_secret' => $this->appKey, 'code' => $this->code, 'redirect_uri' => $this->redirectUri, ]; $url = self::PC_ACCESS_TOKEN_URL . '?' . http_build_query($params); $content = $this->getUrl($url); parse_str($content, $res); if ( !isset($res['access_token']) ) { $this->thrwoError($content); } $this->accessToken = $res['access_token']; $this->expiresIn = $res['expires_in']; $this->refreshToken = $res['refresh_token']; return true; } /** * 刷新access token * @throws Exception * @return boolean */ public function refreshToken() { $params = [ 'grant_type' => 'refresh_token', 'client_id' => $this->appid, 'client_secret' => $this->appKey, 'refresh_token' => $this->refreshToken, ]; $url = self::PC_ACCESS_TOKEN_URL . '?' . http_build_query($params); $content = $this->getUrl($url); parse_str($content, $res); if ( !isset($res['access_token']) ) { $this->thrwoError($content); } $this->accessToken = $res['access_token']; $this->expiresIn = $res['expires_in']; $this->refreshToken = $res['refresh_token']; return true; } /** * 取用户open id * @return string */ public function getOpenid() { $params = [ 'access_token' => $this->accessToken, ]; $url = self::OPEN_ID_URL . '?' . http_build_query($params); $this->openid = $this->parseOpenid( $this->getUrl($url) ); return $this->openid; } /** * get方式取url内容 * @param string $url * @return mixed */ public function getUrl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_URL, $url); $response = curl_exec($ch); curl_close($ch); return $response; } /** * post方式取url内容 * @param string $url * @param array $keysArr * @param number $flag * @return mixed */ public function postUrl($url, $keysArr, $flag = 0) { $ch = curl_init(); if(! $flag) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $keysArr); curl_setopt($ch, CURLOPT_URL, $url); $ret = curl_exec($ch); curl_close($ch); return $ret; } /** * 取state * @return string */ protected function getState() { $this->state = md5(uniqid(rand(), true)); //state暂存在缓存里面 //自己定义 //。。。。。。。。。 return $this->state; } /** * 验证state * @return boolean */ protected function verifyState() { //。。。。。。。 } /** * 抛出异常 * @param string $error * @throws \Exception */ protected function thrwoError($error) { $subError = substr($error, strpos($error, "{")); $subError = strstr($subError, "}", true) . "}"; $error = json_decode($subError, true); throw new \Exception($error['error_description'], (int)$error['error']); } /** * 从获取openid接口的返回数据中解析出openid * @param string $str * @return string */ protected function parseOpenid($str) { $subStr = substr($str, strpos($str, "{")); $subStr = strstr($subStr, "}", true) . "}"; $strArr = json_decode($subStr, true); if(!isset($strArr['openid'])) { $this->thrwoError($str); } return $strArr['openid']; } }
以上所述就是本文的全部内容了,希望大家能够喜欢。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP dan OAuth: Melaksanakan penyepaduan log masuk Microsoft Dengan pembangunan Internet, semakin banyak tapak web dan aplikasi perlu menyokong pengguna untuk log masuk menggunakan akaun pihak ketiga untuk menyediakan pengalaman pendaftaran dan log masuk yang mudah. Akaun Microsoft ialah salah satu akaun yang digunakan secara meluas di seluruh dunia, dan ramai pengguna ingin menggunakan akaun Microsoft untuk log masuk ke tapak web dan aplikasi. Untuk mencapai penyepaduan log masuk Microsoft, kami boleh menggunakan protokol OAuth (Open Authorization) untuk mencapainya. OAuth ialah protokol kebenaran standard terbuka yang membenarkan pengguna membenarkan aplikasi pihak ketiga bertindak bagi pihak mereka

OAuth dalam PHP: Mencipta Pelayan Kebenaran JWT Dengan peningkatan aplikasi mudah alih dan trend pemisahan bahagian hadapan dan belakang, OAuth telah menjadi bahagian yang amat diperlukan dalam aplikasi web moden. OAuth ialah protokol kebenaran yang melindungi sumber pengguna daripada capaian yang tidak dibenarkan dengan menyediakan proses dan mekanisme piawai. Dalam artikel ini, kita akan belajar cara membuat pelayan kebenaran OAuth berasaskan JWT (JSONWebTokens) menggunakan PHP. JWT ialah sejenis

Dengan populariti Internet mudah alih, semakin banyak aplikasi memerlukan pengguna untuk mengesahkan dan membenarkan diri mereka sendiri. OAuth2 ialah rangka kerja pengesahan dan kebenaran popular yang menyediakan aplikasi dengan mekanisme piawai untuk melaksanakan fungsi ini. LaravelPassport ialah pelaksanaan pelayan OAuth2 yang mudah digunakan, selamat dan luar biasa yang menyediakan pembangun PHP alat yang berkuasa untuk membina pengesahan dan kebenaran OAuth2. Artikel ini akan memperkenalkan penggunaan LaravelPassport

Cara melakukan penyepaduan GoogleDrive menggunakan PHP dan OAuth GoogleDrive ialah perkhidmatan storan awan popular yang membolehkan pengguna menyimpan fail dalam awan dan berkongsinya dengan pengguna lain. Melalui GoogleDriveAPI, kami boleh menggunakan PHP untuk menulis kod untuk disepadukan dengan GoogleDrive untuk melaksanakan operasi muat naik, muat turun, pemadaman dan lain-lain fail. Untuk menggunakan GoogleDriveAPI kita perlu membuat pengesahan melalui OAuth dan

OAuth2 ialah protokol standard terbuka yang digunakan secara meluas untuk memberikan akses kepada sumber pengguna kepada aplikasi pihak ketiga, seperti rangkaian sosial seperti Google, Facebook dan Twitter, tanpa menghantar nama pengguna dan kata laluan terus kepada mereka. Dalam PHP, anda boleh menggunakan perpustakaan OAuth2 siap sedia untuk melaksanakan aliran OAuth2 dengan mudah atau anda boleh membina pustaka anda sendiri untuk melaksanakannya. Dalam artikel ini, kami akan menumpukan pada menggunakan pustaka OAuth2 siap pakai dan cara menggunakan OAut melaluinya

Kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP Dengan pembangunan Internet, semakin banyak aplikasi perlu berinteraksi dengan platform pihak ketiga. Untuk melindungi privasi dan keselamatan pengguna, banyak platform pihak ketiga menggunakan protokol OAuth2 untuk melaksanakan pengesahan pengguna. Dalam artikel ini, kami akan memperkenalkan kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP, dan melampirkan contoh kod yang sepadan. OAuth2 ialah rangka kerja kebenaran yang membolehkan pengguna membenarkan aplikasi pihak ketiga mengakses sumber mereka pada pembekal perkhidmatan lain tanpa menyebut

Apabila penggunaan API semakin meluas, melindungi keselamatan dan kebolehskalaan API menjadi semakin kritikal. OAuth2 telah menjadi protokol keselamatan API yang diterima pakai secara meluas yang membenarkan aplikasi mengakses sumber yang dilindungi melalui kebenaran. Untuk melaksanakan pengesahan OAuth2, LaravelPassport menyediakan cara yang mudah dan fleksibel. Dalam artikel ini, kita akan belajar cara melaksanakan pengesahan APIOAuth2 menggunakan LaravelPassport. Lar

Pengenalan kepada cara menggunakan PHP dan OAuth untuk penyepaduan log masuk QQ: Dengan pembangunan media sosial, semakin banyak laman web dan aplikasi mula menyediakan fungsi log masuk pihak ketiga untuk memudahkan pengguna mendaftar dan log masuk dengan cepat. Sebagai salah satu platform media sosial terbesar di China, QQ juga telah menjadi perkhidmatan log masuk pihak ketiga yang disediakan oleh banyak tapak web dan aplikasi. Artikel ini akan memperkenalkan langkah tentang cara menggunakan PHP dan OAuth untuk penyepaduan log masuk QQ, dengan contoh kod. Langkah 1: Daftar sebagai pembangun platform terbuka QQ Sebelum mula mengintegrasikan log masuk QQ, I
