zoukankan      html  css  js  c++  java
  • qq第三方登录

    自己看的,我是小白,别喷。

     开始的时候,老是提示curl没开启什么的。网上搜了搜说curl没开,我记得我开了的。又有说openssl没开,安装了一下。还是不行。

    看了看sdk,里面用到了curl函数,没有开启就用file_get_contents()呗。结果说我fopen为0,记得前几天测试某些东西的时候关了忘记开,开了后还是不行,整个人都不好了。写个demo试了试。

    echo file_get_contents("http://www.baidu.com");

    结果可以。。。

    又试了试curl,又可以。。。

    那应该是其他问题。f12打开调试模式,找到url,浏览器访问,获取到appkey不对。。。我的天。。。多了个空格,复制的时候没留意。

    以下是看完文档记录的东西。以后看这个就很容易知道怎么做了

    qq互联申请成为开发者,创建网站应用。设置回到地址(不能带参数,像?a=1这样的不行,可以改变URL模式)。拿到appid与appkey。

    放置登录按钮,例如:这样的,

    当用户点击这个按钮的时候,要做的就是让用户跳转到这个地址,https://graph.qq.com/oauth2.0/authorize

    要带上如下参数:

    所以地址可能是这样的:https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=【你的appid】&redirect_uri=【你的回调地址(要经过urlencode转码)这个回到地址可以带参数】&state=[随机数,找地址放,例如session]&scope=(get_user_info这个参数看上图);

    不管是直接跳过去,js跳过去,还是后台跳过去,就是要跳转到这个地址。(啰嗦了,怕以后忘记了。。。)

    这个是登录页面(虽然腾讯那边后来又重定向去其他地址了,但是对我们来说这个就是登录页面)。就是用户输入qq号密码那个页面。

     如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址(就是回调地址)后带上Authorization Code和原始的state值。

    例如:回调地址是http://www.a.com,那么腾讯那边就会访问http://www.a.com?code="[给你的code]"&state="[你之前给它的state]",其实就是把code,state两个值发给你。

    值得一提的是,如果用户取消登录,pc端就把网页关闭,但如果是wap端,那么服务器还是会访问你的回调地址的。

    拿到code之后就要拿token,(在回调函数获取)

    请求地址

    PC网站:https://graph.qq.com/oauth2.0/token

    WAP网站:https://graph.z.qq.com/moc2/token

    请求方法

    GET

    请求参数

    用token获取openid(openid是这个网站上对qq用户的唯一标识)

    1 请求地址

    PC网站:https://graph.qq.com/oauth2.0/me
    WAP网站:https://graph.z.qq.com/moc2/me

    2 请求方法

    GET

    3 请求参数

    请求参数请包含如下内容:

    参数是否必须含义
    access_token 必须 在Step1中获取到的access token。

    调用OpenApi,以getuserinfo为例。

    (请将access_token,appid等参数值替换为你自己的)

    https://graph.qq.com/user/get_user_info?access_token=YOUR_ACCESS_TOKEN&oauth_consumer_key=YOUR_APP_ID&openid=YOUR_OPENID

    2. 成功返回后,即可获取到用户数据:

     其他接口也是差不多,看文档

  • 相关阅读:
    ROS安装过程与常遇问题
    Linux中Vim工具的使用
    秋招总结
    SpringBoot项目打包war包步骤
    hiredis windows静态库编译
    Access去除字段值后面空格
    AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
    AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排
    AspNetCore容器化(Docker)部署(二) —— 多容器通信
    AspNetCore容器化(Docker)部署(一) —— 入门
  • 原文地址:https://www.cnblogs.com/passer101/p/7091043.html
Copyright © 2011-2022 走看看