使用Zend框架整合OAuth和OpenID的验证(google平台)_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > 使用Zend框架整合OAuth和OpenID的验证(google平台)

使用Zend框架整合OAuth和OpenID的验证(google平台)

 2011/1/9 9:16:40  vrspider  http://vrspider.javaeye.com  我要评论(0)
  • 摘要:最近一个小项目需要整合Google日历数据到公司的系统,因为产品前台是PHP的,所以考虑使用了Zend框架,也是Google平台官方推荐使用的PHP框架,功能强大,Zend的好处是你可以只需复制你需要的功能扩展库,而不用把整个框架库都复制到你的系统中。在使用Google的平台服务的时候,在验证这块碰到了一些问题,google平台的用户验证授权机制非常强大,用户验证,针对不同产品的授权,分别都有相应的处理,这也增加了系统整合的复杂度,好在google关于验证和授权的帮助文档中提供了例子
  • 标签:使用 Google
最近一个小项目需要整合Google 日历数据到公司的系统,因为产品前台是PHP的,所以考虑使用了Zend框架,也是Google平台官方推荐使用的PHP框架,功能强大,Zend的好处是你可以只需复制你需要的功能扩展库,而不用把整个框架库都复制到你的系统中。

在使用Google的平台服务的时候,在验证这块碰到了一些问题,google平台的用户验证授权机制非常强大,用户验证,针对不同产品的授权,分别都有相应的处理,这也增加了系统整合的复杂度,好在google 关于验证和授权的帮助文档中提供了例子,连接如下
测试页面 : http://googlecodesamples.com/hybrid/
源码: http://code.google.com/p/gdata-samples/source/browse/#svn%2Ftrunk%2Fhybrid

这个例子整合了OpenID和OAuth的使用,使用了几个扩展的库来发送和接收google的验证数据
,从封装OpenID请求数据到转接到官方认证页面,在通过官方的RequestToken换取可长久使用的AccessToken, 代码里面都有明确注释

但是我在使用Zend_Gdata_Calendar来访问读取日历数据的时候发现,Zend_Gdata接受的HttpClient对象和实例中封装的出来的无法通用,这就需要把实例中用来请求google服务的client对象转换成Zend_Gdata服务认识的,因为我需要使用AccessToken来做持久化访问,在查看文档的时候发现

/*  Or, you could set an existing token (say one stored from your database). For HMAC-SHA1:
$accessToken = new Zend_Oauth_Token_Access();
$accessToken->setToken('1/AQfoI-qJDqkvvkf216Gc2g');
$accessToken->setTokenSecret('2c26GLW250tZiQ');
*/


链接如下
http://code.google.com/apis/gdata/docs/auth/oauth.html#OAuthUseAccessTokenPHP

不管你通过何种方法获取了AccessToken,你都可以轻松转换成Zend框架需要的google client对象来使用。

当然Zend中也有对OpenID和 OAuth的单独支持,但是整合的情况不适合Google Yahoo等新版本的OpenID provider。 当然也许本人没有找到。

也有网友推荐使用下面的框架,因为需要使用Google的服务,我还是选择了Zend.
http://www.janrain.com/openid-enabled

上一篇: PHP引用的妙用 下一篇: strtr和str_replace
发表评论
用户名: 匿名