一、概述及安装

此扩展提供 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. Python中*args和**kwargs的区别
  2. Java笔记整理-02.Java基础语法
  3. css学习笔记3--灵活的背景定位
  4. jvm性能调优实战 -56没有WHERE条件的SQL语句引发的OOM MAT 排查步骤
  5. 利用SQL05特性删除表中重复数据
  6. Java 8可选:如何使用它
  7. 初识GaussDB(for Cassandra)
  8. java int和String类型之间的相互转换
  9. linux下java连接mysql_LinuxJava连接MySQL数据库
  10. ubuntu 10.04 虚拟机建立tftp服务器
  11. LoadRunner接口工作总结
  12. datagrid combobox 选择后显示valueField 而不是 textValue解决方法
  13. 利用级数求和推导泊松分布的期望方差
  14. 人脸识别之一图像采集及人脸库的建立
  15. 韦东山linux嵌入式学习之路
  16. 分享一下好用的本地格式化软件hijson,这个居然还有人要收费才能下载,真是醉了
  17. 广义线性模型(GLMs)及算法介绍
  18. html怎么修改网页背景色,CSS如何设置网页背景颜色、背景图片
  19. php通用补丁,PHP受权验证系统V2.1完整版 带补丁包
  20. win10安装oracle数据库失败

热门文章

  1. 95-240-040-原理-State-简介
  2. 深入分析之Cluster层
  3. synchronized与锁升级
  4. Linux终端复用神器-tmux初探
  5. 如果程序员面试时,大家都说真话会怎么样?画面过于真实....
  6. Spring全家桶——SpringCloud之Feign(Finchley版)
  7. 23种设计模式(8)-外观模式
  8. oracle用游标,Oracle游标使用全解
  9. 判断字符串中是否含有并一个字符或字符串
  10. SpringBoot学习(五)