一、概述及安装

此扩展提供 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相关推荐

  1. WCF 扩展一:格式化Web服务请求XML

    扩展原因 有一WebService,在工程中添加Web Service引用后调用不成功,但是用SoapUI测试正常 分析 用tctTrace跟踪报文后发现wcf生成的报文命名空间与SoapUI的不一样 ...

  2. Web服务器之Http压缩(GZip)

     作者:张子秋 出处:http://www.cnblogs.com/zhangziqiu/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...

  3. Web服务生存周期内发生的事件/Soap扩展的阶段/Soap扩展的步骤

    客户端创建WEB服务代理类的一个新实例,该对象驻留在客户端所在的同一台计算机上. 客户端调用代理类上的方法. 客户端计算机上的ASP.NET框架的基础结构将WEB服务方法的参数序列化为SOAP消息,并 ...

  4. 博科光纤交换机java_带有光纤的可扩展,健壮和标准的Java Web服务

    博科光纤交换机java 这篇博客文章讨论了负载下的基准Web服务性能. 要了解有关Web服务性能理论的更多信息,请阅读利特尔定律,可伸缩性和容错 . 使用阻塞和异步IO对Web服务进行基准测试 Web ...

  5. 带有光纤的可扩展,健壮和标准的Java Web服务

    这篇博客文章讨论了负载下的基准Web服务性能. 要了解有关Web服务性能理论的更多信息,请阅读利特尔定律,可伸缩性和容错 . 使用阻塞和异步IO对Web服务进行基准测试 Web应用程序(或Web服务) ...

  6. Spring boot、微服务、OAuth、OpenID的爱恨情仇!

    在本文中,我们学习如何使用Spring boot轻松配置和部署微服务,然后使用OAuth和OpenID保护它们. 在微服务体系架构中,其中较大的应用程序由多个较小的服务组成,每个服务都有自己的目标,它 ...

  7. soapui工具_基于开源的API测试工具!不再为web服务负载测试而发愁

    通过一个可视化.拖拽式的界面,LoadUI允许您实时.交互式地创建.配置和重分配负载测试.在单一测试环境下,LoadUI提供完整的测试覆盖,支持所有标准的协议和技术.它功能强大,能从任意数量的本地和远 ...

  8. springboot jar服务器运行后无法请求_Spring boot、微服务、OAuth、OpenID的爱恨情仇!...

    在本文中,我们学习如何使用Spring boot轻松配置和部署微服务,然后使用OAuth和OpenID保护它们. 在微服务体系架构中,其中较大的应用程序由多个较小的服务组成,每个服务都有自己的目标,它 ...

  9. 使用Spring Security和OAuth 2.0保护Spring微服务架构

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 每个开发 ...

  10. 保护REST API / Web服务的最佳实践[关闭]

    在设计REST API或服务时,是否存在处理安全性(身份验证,授权,身份管理)的最佳实践? 构建SOAP API时,您需要使用WS-Security作为指南,并且有很多关于该主题的文献. 我发现有关保 ...

最新文章

  1. Oracle 分页查询语句SQL
  2. 华为OJ平台——放苹果(典型整数划分问题)
  3. c语言logo,真好玩 C语言输出Yahoo动态logo
  4. Android Studio之导入别人的module后config.gradle配置文件没有生效
  5. AD域账户登录mysql_ASP.NET Core AD 域登录
  6. python中break与continue使用
  7. JAVA 多线程 JAVA 如何开发一个自定义线程池
  8. kafka java_Java操作Kafka
  9. ctfshow-网络迷踪-山外有山
  10. linux popen阻塞_linux popen()与system()的区别
  11. 鲜为人知的合作:锐捷和juniper、联想和三茗
  12. 碳膜、金属膜、金属氧化膜电阻区别
  13. 音频处理——音频处理的基本概念
  14. 获取计算机用户名,java获取计算机用户名
  15. 微软员工和 GitHub 员工宣布支持 996.ICU 运动,来签个名呗?
  16. ToLua 入门05_AccessingLuaVariables
  17. 华芯投资40亿现金收购美芯片测试设备厂商Xcerra
  18. excel技巧:满足多个条件分项汇总求和
  19. Linux虚拟机安装及Docker常用操作
  20. python批量修改文件名字为数字编号

热门文章

  1. 【Spring 】Synchronized锁在Spring事务管理下,为啥还线程不安全?
  2. 【Kafka】Kafka 配置 SASL_SSL jks鉴权验证方式
  3. IDEA多Module的Language Level的问题
  4. windows下SBT的安装与使用
  5. NIO与零拷贝和AIO
  6. 2019.8.2闭包,作用域
  7. 深入学习Spring框架(二)- 注解配置
  8. 推荐系统和搜索引擎的关系
  9. oracle之三手工不完全恢复
  10. [Android]AndroidInject增加sqlite3数据库映射注解(ORM)