php+Oauth认证

先去qq互联申请:app_id app_key

官方:

  step1:放置qq登陆按钮

  step2:获取authorization code

  step3:通过authorization code 获取 access token

  step4: 通过access token获取 open id值

  step5:用access token和open id 去访问和修改用户数据

概况:

   client 访问 web上的qq登陆,点击,进入web封装后的url,即带上app_id+callback+status,这个url跳转到qq得,此时,呈现在用户 面前的是跳转后的qq登陆页,用户在当前qq页面输入用户名密码登陆(此时是qq域名下,和我们的web无关),点击确认,进入qq后台验证后,qq服务 器回跳至 web的callback接口,我们的callback获取authorization code,然后再用

authorization code + app_id + app_key+ status+redirect_url 去qq服务器获取access code 。 然后再用 access code去获取open_id.....

网页上第一步: //网站自己包裹了一层

  href="http://www.discuz.net/connect.php?mod=login&op=init&referer=forum.php&statfrom=login_simple"

  网站内部跳转:

  /Users/登录名/Sites/cosbbs/source/plugin/manyou/Service/Client/ConnectOAuth.php //discuz内部的实现

跳转到: //内部真正的跳转后到qq的页面,由该页面 输入qq用户名密码, 登陆成功后,回调我们web的接口,我们web接口拿到oauth_token再次去请求qq的接口

  http://openapi.qzone.qq.com/oauth/qzoneoauth_authorize?oauth_consumer_key=10000034&oauth_token=9834503974295315228 //我们拿到oauth_token,然后再去qq接口,你看qq.com域名

回调: //回调

  http://www.discuz.net/connect.php?receive=yes&mod=login&op=callback&referer=forum.php&oauth_token=9834503974295315228&openid=3037BB9E81C35433B45AA5BE0A575783&oauth_signature=c0vCneKTloXpW3PzxSOc1jDKhQ4%3D&oauth_vericode=1094966219&timestamp=1428308280

回调完了,自动跳转到:

  http://www.discuz.net/forum.php //登陆完成

http://www.discuz.net/connect.php?receive=yes&mod=login&op=callback&referer=forum.php&oauth_token=13940165893393575304&openid=3037BB9E81C35433B45AA5BE0A575783&oauth_signature=JYlMSEZ5a%2FAxYWfG6MITshWgYVs%3D&oauth_vericode=87598391&timestamp=1428309036

//qq的路径:

    先前端或后端跳转到qq登录框,这个跳转是带上appid的,(appid是申请到的,让qq知道你是哪个web)

   private $_requestTokenURL = 'http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token'; //带上appid去qq登录框页面

  private $_oAuthAuthorizeURL = 'http://openapi.qzone.qq.com/oauth/qzoneoauth_authorize'; //获取 authorize token

  private $_accessTokenURL = 'http://openapi.qzone.qq.com/oauth/qzoneoauth_access_token'; //带上authorize token去请求获取access token

  private $_getUserInfoURL = 'http://openapi.qzone.qq.com/user/get_user_info'; //获取用户信息

相关链接:

  http://connect.qq.com/ //qq第三方登陆、代码