QQ第三方登录1

由于最近比较忙,耽误几天没有写博客,下面咱们来说一下第三方登录的逻辑!

流程的详细文档可以在:http://wiki.conncet.qq.com 去查看相关的描述,有特别仔细的说明,我这里就简单描述一下,下面是一个流程的分布:

QQ第三方登录1
第一步:
去网站先申请自己appid与appkey,保证在后面的流程去填写相应的位置,用人会问?这两个是做什么的呢,有什么用途?

appid:应用的唯一标识。在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值.

appkey:appid对应的**,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值.

申请地址:http://connect.qq.com/intro/login/

第二步:
在这里添加一个按钮a链接,去实现一个页面的跳转登录,用户点击按钮是,便会跳转到登录页面,代码如下:
QQ第三方登录1
第三部:

使用Authorization_Code获取Access_Token,没有Access_Token是不可以的,这里有两个步骤;

  1. 获取Authorization Code;

  2. 通过Authorization Code获取Access Token

接下来进行下一步,请求地址:

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

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

请求方法:

GET

请求参数:
QQ第三方登录1
返回说明:

  1. 如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址后带上

Authorization Code和原始的state值。如:

PC网站:http://graph.qq.com/demo/index.jsp?code=9A5F************************06AF&state=test

WAP网站:http://open.z.qq.com/demo/index.jsp?code=9A5F************************06AF&state=test

注意:此code会在10分钟内过期,请注意时间!!!

下面是我们来获取一个请求地址:QQ第三方登录1
我们来分析一下上面的代码:

1、$redirect = “/user_center/index”;

这是到最后登录成功后进行跳转的url,一般登录成功可以跳转的首页或者个人中心
    
2、$this->getOpenLoginRedirectUrl(AccountType::ConnectQQ, $redirect);

这里我说明下AccountType::ConnectQQ ,这是个常量而已,我的项目中有微博登录,所以是用一个常量来判断是QQ登录还是微博登录,它们的实现过程基本一致。
  
 3、$this->model->connectQQ->getLoginUrl();

此代码的意思是调用connectQQMolde.php 里的getLoginUrl()方法,其实它返回的就是请求的url地址的。

今天先到这,想看的请看下一篇:QQ第三方登录2