首页 视频课程 WordPress开发文档WordPress插件开发 QQ登录实现

QQ登录实现

2020-11-01 / 2187阅

本课程讲解如何实现QQ登录,为了方便学习,不做任何伪静态和重定向操作。

第一步:建立回调文件

你在申请QQ互联时会填写一个回调地址,我们与最简单的方式来操作,在网站跟新建一个connect.php文件。

在这个文件里面写上任意内容,访问 你的域名/connect.php文件,确保文件可以打开。

第二步:加入wordpress功能

新建的connect.php文件是孤立的,默认情况下他不具备WordPress的任何功能。

我们在这个文件中引入 wp-load.php文件文件,加载WordPress功能。

        session_start();
	date_default_timezone_set('PRC');
	include('wp-load.php');
	$id = '101****07';
	$key = '1c0de3b0**********8957248'; 

同时我们设置开启SEESSION功能,第二设置时区为中国,并且定义了QQ互联的id和key。引入了wp-load.php以后,你就可以在这个文件中使用是有wordpress函数和功能。

第三步:获取code

	//第一步,换取code
	function youran_get_code(){
		echo  '开始获取CODE<br/>';
		if($_GET['code']){
			//echo  'CODE已经存在<br/>';
			return $_GET['code'];
		}else {
			//echo  'CODE不存在<br/>';
			global $id;
			$url = urlencode('https://youranzixue.cn/connect.php');
			$sup = '2020';
			wp_redirect( 'https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=' . $id . '&redirect_uri=' . $url . '&state=' . $sup);
		}
	} 

上面的函数会判断当前网址是否携带code,如果没有code,则自动去请求code。

redirect_uri参数是回调地址,填错了就收不到code,state参数可以作为你需要传递的内容,它会被原样返回给你。

第四步:拿到token

	function youran_get_new_token(){
		global $id, $key;
		$code = youran_get_code();
		$url = 'https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=' . $id . '&client_secret=' . $key . '&code=' . $code . '&redirect_uri=' . urlencode('https://youranzixue.cn/connect.php');
		$content = wp_remote_get($url);
		if ($content) {
			if (strpos($content['body'], 'access_token') !== false) {
				return youran_content($content['body']);
			} else {
				return false;
			}
		} else {
			return false;
		}
	} 

有了code,我们就可以拿着code去换token了。拿到正文以后,不是json格式的【备注拿取的姿势不对,下午在更新代码】,我们需要用下面的函数稍微处理下。

	//整理和存储token
	function youran_content($content){
		$info = explode("&", $content);
		$qq = array();
		foreach ($info as $v) {
			$body = explode("=", $v);
			$qq[$body[0]] = $body[1];
		}
		return $qq;
	} 

阅读文章或者观看视频过程中有任何问题,请下方留言或者联系我Q248758228

大家谈论
    我的见解
    目录