本文以接入新浪账户为例,说明通过OAuth2.0微博登陆的步骤
慕课网关于OAuth2.0的视频教程地址:
http://www.imooc.com/learn/557
新浪微博关于OAuth2.0的说明文档地址:
http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
想要使用新浪微博的账户接入服务,必须首先在新浪微博开发平台创建一个应用,并申请得到APP Key和App Secret,还要设置CALLBACK_URL
Key和Secret在创建完应用之后,就可以看到。
CALLBACK_URL设置的地方比较隐蔽:
授权地址:
https://api.weibo.com/oauth2/authorize
使用GET方式传入以下参数:
client_id=YOUR_CLIENT_ID
response_type=code
redirect_uri=YOUR_REGISTERED_REDIRECT_URI
可以通过下面的超链接的形式:
(1)如果用户放弃登录,则会跳转到取消授权回调页
(2)如果用户登录成功,则会跳转到授权回调页,并且会返回一个code参数,供我们进一步获取Access Token使用。
授权地址:
https://api.weibo.com/oauth2/access_token
传入参数:
client_id=YOUR_CLIENT_ID
client_secret=YOUR_CLIENT_SECRET
grant_type=authorization_code //该参数是固定值
redirect_uri=YOUR_REGISTERED_REDIRECT_URI
code=CODE //这就是上一步获取的code值
可以使用curl获取Access Token
<?php session_start(); require_once('config.php'); require_once('curl.php'); $param = array(); if(isset($_REQUEST['code'])){ $param['code'] = $_REQUEST['code']; $param['client_id'] = WB_AKEY; $param['client_secret'] = WB_SKEY; $param['grant_type'] = "authorization_code"; $param['redirect_uri'] = WB_CALLBACK_URL; $param = http_build_query($param); $url = WB_ACCESS_TOKEN_URL; $res = curl_post($url,$param); $token = json_decode($res,true); if(is_array($token)){ $_SESSION['token'] = $token['access_token']; header("Location:index.php"); } }
我们在上一步已经将Access Token存到SESSION中,然后可以调用微博系统允许我们调用的API了。
源代码下载:(源代码是免费下载的~)
http://download.csdn.net/detail/koastal/9351381