如何在你的网站接入QQ登录?

这篇具有很好参考价值的文章主要介绍了如何在你的网站接入QQ登录?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备阶段

  • 国内服务器和备案域名
  • 需要你有张独一无二本人的身份证
  • 你正面手持身份证的图片
  • 一张100px*100px的网站图标

申请QQ登录的权限

首先访问qq互联,点击我直接访问
如何在你的网站接入QQ登录?,android

登陆完成后我们点击面的应用管理
如何在你的网站接入QQ登录?,android
然后我们点击头像进入页面后填写相关的信息等待审核就好了(审核时间大概在一天左右吧)

创建应用

回到管理页面点击创建应用>创建网站应用
如何在你的网站接入QQ登录?,android
然后填写你的网站的相关信息
如何在你的网站接入QQ登录?,android
网站地址填你要用QQ登录的网址,回调地址填到你要登录的页面的目录下,再加/qqlogin.php 例如我要用www.xfabe.com进行QQ登录,登录页面在路径www.xfabe.com/user/login.php 那这个回调地址就填www.xfabe.com/user/qqlogin.php 提供方可以随意,然后再把备案号填完就行,最后上传下图标即可,然后等待审核(一天左右吧)
如何在你的网站接入QQ登录?,android
最后然后记录你的APP ID和APP Key,在你的登录页面加上QQ登录的按钮然后指向回调域文章来源地址https://www.toymoban.com/news/detail-811930.html

最后上传qqlogin.php代码

<?php
include '../includes/config.php';//这里你加载你网站程序的运行文件
//应用的APPID

   $app_id = "你的APPID";
   //应用的APPKEY
   $app_secret = "你的APPKEY";
   //【成功授权】后的回调地址,即此地址在腾讯的信息中有储存
   $my_url = "你填写的回调地址";
  
   //Step1:获取Authorization Code
   session_start();
   $code = $_REQUEST["code"];//存放Authorization Code
   if(empty($code))
   {
    //state参数用于防止CSRF攻击,成功授权后回调时会原样带回
    $_SESSION['state'] = md5(uniqid(rand(), TRUE));
    //拼接URL
    $dialog_url = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id="
     . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
     . $_SESSION['state'];
     if(isset($_GET['user'])){
         $dialog_url = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id="
     . $app_id . "&redirect_uri=" . urlencode($my_url) . "?user=".$_GET['user']."&state="
     . $_SESSION['state'];
     }
    echo("<script> top.location.href='" . $dialog_url . "'</script>");
   }
  
   //Step2:通过Authorization Code获取Access Token
   if($_REQUEST['state'] == $_SESSION['state'] || 1)
   {
    //拼接URL
    $token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&"
     . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
     . "&client_secret=" . $app_secret . "&code=" . $code;
    $response = file_get_contents($token_url);
    if (strpos($response, "callback") !== false)//如果登录用户临时改变主意取消了,返回true!==false,否则执行step3
    {
     $lpos = strpos($response, "(");
     $rpos = strrpos($response, ")");
     $response = substr($response, $lpos + 1, $rpos - $lpos -1);
     $msg = json_decode($response);
     if (isset($msg->error))
     {
      echo "<h3>error:</h3>" . $msg->error;
      echo "<h3>msg :</h3>" . $msg->error_description;
      exit;
     }
    }
  
    //Step3:使用Access Token来获取用户的OpenID
    $params = array();
    parse_str($response, $params);//把传回来的数据参数变量化
    $graph_url = "https://graph.qq.com/oauth2.0/me?access_token=".$params['access_token'];
    $str = file_get_contents($graph_url);
    if (strpos($str, "callback") !== false)
    {
     $lpos = strpos($str, "(");
     $rpos = strrpos($str, ")");
     $str = substr($str, $lpos + 1, $rpos - $lpos -1);
    }
    $user = json_decode($str);//存放返回的数据 client_id ,openid
    if (isset($user->error))
    {
     echo "<h3>error:</h3>" . $user->error;
     echo "<h3>msg :</h3>" . $user->error_description;
     exit;
    }
    if(isset($_GET['user'])){//这个if是我用来绑定Openid的,可以根据自己所需编写
        $AT->query("UPDATE `act_user` SET `Openid` = '".$user->openid."' WHERE `Uid` = ".$_GET['user']);
        exit ('<script>alert("绑定成功!");window.location.href = "./system.php";</script>');
    }
    //echo("Hello " . $user->openid);
    //echo("Hello " . $params['access_token']);
  
    //Step4:使用<span >openid,</span><span >access_token来获取所接受的用户信息。</span>
    $user_data_url = "https://graph.qq.com/user/get_user_info?access_token={$params['access_token']}&oauth_consumer_key={$app_id}&openid={$user->openid}&format=json";
  
    $user_data = file_get_contents($user_data_url);//此为获取到的user信息
  
    $return = $AT->get_row("SELECT * FROM act_user where Openid = '".$user->openid."'");//这一块代码根据自己需要编写
    if(!$return){
        echo '<script>alert("授权站无此用户!");window.location.href = "./login.php";</script>';
    }else{
        setcookie("ACTuser",$return['token'],time() + 3600);
        echo '<script>alert("登录成功!");window.location.href = "./index.php";</script>';
    }
  
    }
    else
    {
     echo("The state does not match. You may be a victim of CSRF.");
    }
?>

到了这里,关于如何在你的网站接入QQ登录?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android实现qq登录注册和好友列表界面

    学习Android已经有一个多月了,老师留了实现qq登陆注册和好友列表的作业,要求: 设计登录界面,注册界面和好友列表界面。 在登录界面输入用户名“ admin ”,密码“ abc123 ”后,判断用户名和密码是否正确。 若用户名或密码错误则给出相应提示:“用户名或密码输入有误

    2024年02月02日
    浏览(33)
  • 在你的电脑上玩Python

            工欲善其事,必先利其器。在系统性地学习一门编程语言之前,我们如何在自己的电脑上运行代码呢?我们需要搭建一个代码运行的平台。电脑系统分为macOS系统和Windows系统,请根据自己电脑系统选择性下载安装IDE。 目录 IDE(集成开发环境)的下载与安装 一、mac

    2024年02月19日
    浏览(26)
  • 在 Android Studio 中创建一个简单的 QQ 登录界面

            打开 Android Studio,选择 \\\"Start a new Android Studio project\\\",然后填写应用程序名称、包名和保存路径等信息。接下来,选择 \\\"Phone and Tablet\\\" 作为您的设备类型,然后选择 \\\"Empty Activity\\\" 作为您的 Activity 模板。         在 Android Studio 中,布局文件用于指定应用程序的用

    2024年02月07日
    浏览(38)
  • Android仿QQ界面,登录后使用Toast显示账号和密码

    1.新建工程。 2.完成界面设计。 3.完成登录功能:单击“登录”按钮,使用Toast显示输入的用户名和密码。 MainActivity.java文件 activity_main.xml文件 运行效果:  

    2024年02月15日
    浏览(26)
  • 在你眨眼时,VR这样欺骗你的视觉

    VR的沉浸感,可以让人仿佛置身于现实之外,还可以利用各种生物传感特性,来模拟一种具有存在感的虚拟空间。实际上,VR可以很好的欺骗人的感官,比如尽管你身处空间有限的房间中,但在VR中你仿佛已来到开阔的户外大空间中。 为了进一步欺骗你的视觉,一些方案会在你

    2023年04月26日
    浏览(33)
  • 【解决方法】python此应用无法在你的电脑上运行

    在我C盘里有一个错误的文件误导了系统: 就是这玩意,在C:WindowsSystem32里面,大小0kb,不知道怎么生成的。 把他删了就好。 然后如果cmd中输入python变成了跳转到微软商店,就代表你系统的环境变量Path没有设置好。 因为我安装了pycharm和anaconda,我首先一个个在cmd中输入完整

    2024年04月22日
    浏览(25)
  • 2023年的深度学习入门指南(6) - 在你的电脑上运行大模型

    上一篇我们介绍了大模型的基础,自注意力机制以及其实现Transformer模块。因为Transformer被PyTorch和TensorFlow等框架所支持,所以我们只要能够配置好框架的GPU或者其他加速硬件的支持,就可以运行起来了。 而想运行大模型,恐怕就没有这么容易了,很有可能你需要一台Linux电脑

    2024年02月16日
    浏览(33)
  • 项目前瞻|Spring AI:在你的Spring应用中使用生成式AI

    过去一年里,ChatGPT 和 Google Bard 这样的东西出现,为大众带来了生成式人工智能,似乎每个人都在梦想和计划如何在他们的项目甚至日常生活中利用人工智能。 如果您是 Spring 开发人员,您可能想知道如何在 Spring 应用程序中实现生成式 AI。如果是这样,那么接下来这个视频

    2024年02月03日
    浏览(31)
  • 【电脑连接wifi不能访问网页但是微信和QQ可以登录如何解决】

    选择WIFI,修改DNS配置 1.选择控制面板,找到连接的WLAN,右键选择“Internet协议版本4(TCP/IPV4)”,点击“属性” 2.选择“高级” 3.选择DNS选项,添加“114.114.114.114”DNS服务器

    2024年02月12日
    浏览(29)
  • 从零到一,接入广告后如何让你的APP顺利实现冷启动?

    ​很多APP在上线后却面临着变现难的问题。其中一个主要原因就是缺乏有效的广告变现经验。而当这些APP开始接入广告时,又面临着如何顺利冷启动的问题。 本文将为您介绍一些关键的步骤和技巧,帮助您的APP在接入广告后成功实现冷启动。 提高用户留存率 广告变现不仅仅

    2024年02月06日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包