OAuth2.0的学习和实践

本文以接入新浪账户为例,说明通过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


1. 申请APP Key和App Secret


想要使用新浪微博的账户接入服务,必须首先在新浪微博开发平台创建一个应用,并申请得到APP Key和App Secret,还要设置CALLBACK_URL

Key和Secret在创建完应用之后,就可以看到。

CALLBACK_URL设置的地方比较隐蔽:


2. 请求OAuth登录页


授权地址:


https://api.weibo.com/oauth2/authorize


使用GET方式传入以下参数:


client_id=YOUR_CLIENT_ID


response_type=code


redirect_uri=YOUR_REGISTERED_REDIRECT_URI

可以通过下面的超链接的形式:




3. OAuth服务器返回授权结果

(1)如果用户放弃登录,则会跳转到取消授权回调页

(2)如果用户登录成功,则会跳转到授权回调页,并且会返回一个code参数,供我们进一步获取Access Token使用。

4. 使用code参数,向OAuth服务器换取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");
		}		
	}
	

5. 通过Access Token,调用微博可用API


我们在上一步已经将Access Token存到SESSION中,然后可以调用微博系统允许我们调用的API了。




源代码下载:(源代码是免费下载的~)

http://download.csdn.net/detail/koastal/9351381



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值