php oauth 扩展,PHP扩展之Web服务(一)——OAuth
一、概述及安装
此扩展提供 OAuth 消费方和提供方之间的绑定。OAuth 是一种建立在 HTTP 之上的授权协议,用于允许应用程序安全访问数据而无需存储用户名和密码。
PECL/oauth 需要 PHP 5.1 或更高版本,以及 ext/hash 和 ext/pcre 。
如果在构建时选择 PECL/oauth 则可选择性地需要 libcurl 。如果使用 libcurl 配置,则必须构建 HTTPS 支持。
安装此 PECL 扩展相关的信息可在手册中标题为 PECL 扩展的安装章节中找到。
二、使用范例
$req_url = 'https://fireeagle.yahooapis.com/oauth/request_token';
$authurl = 'https://fireeagle.yahoo.net/oauth/authorize';
$acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token';
$api_url = 'https://fireeagle.yahooapis.com/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';
session_start();
// 当 state=1 则下次请求应该包含一个 oauth_token 。
// 如果没有则返回 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
$oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
$oauth->enableDebug();
if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
$request_token_info = $oauth->getRequestToken($req_url);
$_SESSION['secret'] = $request_token_info['oauth_token_secret'];
$_SESSION['state'] = 1;
header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
exit;
} else if($_SESSION['state']==1) {
$oauth->setToken($_GET['oauth_token'],$_SESSION['secret']);
$access_token_info = $oauth->getAccessToken($acc_url);
$_SESSION['state'] = 2;
$_SESSION['token'] = $access_token_info['oauth_token'];
$_SESSION['secret'] = $access_token_info['oauth_token_secret'];
}
$oauth->setToken($_SESSION['token'],$_SESSION['secret']);
$oauth->fetch("$api_url/user.json");
$json = json_decode($oauth->getLastResponse());
print_r($json);
} catch(OAuthException $E) {
print_r($E);
}
?>
三、相关函数
oauth_urlencode — 将 URI 编码为 RFC 3986 规范
四、相关类及其成员函数
OAuth类
OAuthProvider 类
OAuthException 类
OAuthException — OAuthException 类
php oauth 扩展,PHP扩展之Web服务(一)——OAuth相关推荐
- WCF 扩展一:格式化Web服务请求XML
扩展原因 有一WebService,在工程中添加Web Service引用后调用不成功,但是用SoapUI测试正常 分析 用tctTrace跟踪报文后发现wcf生成的报文命名空间与SoapUI的不一样 ...
- Web服务器之Http压缩(GZip)
作者:张子秋 出处:http://www.cnblogs.com/zhangziqiu/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...
- Web服务生存周期内发生的事件/Soap扩展的阶段/Soap扩展的步骤
客户端创建WEB服务代理类的一个新实例,该对象驻留在客户端所在的同一台计算机上. 客户端调用代理类上的方法. 客户端计算机上的ASP.NET框架的基础结构将WEB服务方法的参数序列化为SOAP消息,并 ...
- 博科光纤交换机java_带有光纤的可扩展,健壮和标准的Java Web服务
博科光纤交换机java 这篇博客文章讨论了负载下的基准Web服务性能. 要了解有关Web服务性能理论的更多信息,请阅读利特尔定律,可伸缩性和容错 . 使用阻塞和异步IO对Web服务进行基准测试 Web ...
- 带有光纤的可扩展,健壮和标准的Java Web服务
这篇博客文章讨论了负载下的基准Web服务性能. 要了解有关Web服务性能理论的更多信息,请阅读利特尔定律,可伸缩性和容错 . 使用阻塞和异步IO对Web服务进行基准测试 Web应用程序(或Web服务) ...
- Spring boot、微服务、OAuth、OpenID的爱恨情仇!
在本文中,我们学习如何使用Spring boot轻松配置和部署微服务,然后使用OAuth和OpenID保护它们. 在微服务体系架构中,其中较大的应用程序由多个较小的服务组成,每个服务都有自己的目标,它 ...
- soapui工具_基于开源的API测试工具!不再为web服务负载测试而发愁
通过一个可视化.拖拽式的界面,LoadUI允许您实时.交互式地创建.配置和重分配负载测试.在单一测试环境下,LoadUI提供完整的测试覆盖,支持所有标准的协议和技术.它功能强大,能从任意数量的本地和远 ...
- springboot jar服务器运行后无法请求_Spring boot、微服务、OAuth、OpenID的爱恨情仇!...
在本文中,我们学习如何使用Spring boot轻松配置和部署微服务,然后使用OAuth和OpenID保护它们. 在微服务体系架构中,其中较大的应用程序由多个较小的服务组成,每个服务都有自己的目标,它 ...
- 使用Spring Security和OAuth 2.0保护Spring微服务架构
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 每个开发 ...
- 保护REST API / Web服务的最佳实践[关闭]
在设计REST API或服务时,是否存在处理安全性(身份验证,授权,身份管理)的最佳实践? 构建SOAP API时,您需要使用WS-Security作为指南,并且有很多关于该主题的文献. 我发现有关保 ...
最新文章
- Oracle 分页查询语句SQL
- 华为OJ平台——放苹果(典型整数划分问题)
- c语言logo,真好玩 C语言输出Yahoo动态logo
- Android Studio之导入别人的module后config.gradle配置文件没有生效
- AD域账户登录mysql_ASP.NET Core AD 域登录
- python中break与continue使用
- JAVA 多线程 JAVA 如何开发一个自定义线程池
- kafka java_Java操作Kafka
- ctfshow-网络迷踪-山外有山
- linux popen阻塞_linux popen()与system()的区别
- 鲜为人知的合作:锐捷和juniper、联想和三茗
- 碳膜、金属膜、金属氧化膜电阻区别
- 音频处理——音频处理的基本概念
- 获取计算机用户名,java获取计算机用户名
- 微软员工和 GitHub 员工宣布支持 996.ICU 运动,来签个名呗?
- ToLua 入门05_AccessingLuaVariables
- 华芯投资40亿现金收购美芯片测试设备厂商Xcerra
- excel技巧:满足多个条件分项汇总求和
- Linux虚拟机安装及Docker常用操作
- python批量修改文件名字为数字编号