`
vrspider
  • 浏览: 6211 次
  • 性别: Icon_minigender_1
  • 来自: R'dam
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

使用Zend框架整合OAuth和OpenID的验证(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

0
0
分享到:
评论

相关推荐

    springboot整合Oauth2,GateWay实现网关登录授权验证

    SpringBoot整合OAuth2和Gateway实现网关登录授权验证是一个复杂而关键的过程,它涉及到现代微服务架构中的安全性设计。OAuth2是一种授权框架,用于保护API并允许第三方应用访问受保护的资源,而Spring Gateway作为...

    springcloud整合oauth2和jwt

    而OAuth2和JWT(JSON Web Token)是两种广泛用于身份验证和授权的技术。本篇文章将深入探讨如何在Spring Cloud项目中整合OAuth2和JWT,以及与MyBatis的集成。 首先,OAuth2是一个开放标准,主要用于授权。它允许第...

    OpenID与OAuth协议详解

    OpenID和OAuth是互联网上两种重要的身份验证和授权协议,它们在确保用户数据安全和隐私保护方面发挥着关键作用。本文将对这两种协议进行详细解释。 **OpenID协议** OpenID是一个分散式身份验证协议,它允许用户...

    spring boot 基于数据库整合OAuth2

    这需要创建对应的数据库表,如`oauth_client_details`,并使用Spring Data JPA或MyBatis等ORM框架进行操作。 3. **生成 clientId 和 clientSecret**:为了安全起见,`clientSecret`不应该明文存储。项目中提供的...

    微信企业号OAuth2验证接口的2种实例(使用SpringMVC)

    本文将深入探讨两种使用SpringMVC实现微信企业号OAuth2验证接口的方法。 一、注解方式实现OAuth2验证 1. 配置OAuth2客户端:首先,你需要在SpringMVC的配置文件中添加OAuth2客户端的相关配置,包括appid、app...

    spring-boot-security-oauth2-google:使用OAuth 2.0和OpenID Connect的微服务向Google进行身份验证并向用户获取信息

    使用OAuth 2.0和OpenID Connect的微服务在Google中进行身份验证并向用户获取信息。 技术栈: Maven; Sprint Boot; Spring网 Spring安全; OAuth2身份验证; Angular JS,HTML,CSS。 1.要在Google App中注册您...

    Python-Authlib是一个实现OAuth1OAuth2身份验证的客户端和服务端

    2. **OAuth 2**: OAuth 2 更加简单,常用于Google、Facebook、GitHub等平台的API授权。它主要关注的是授权而不是认证,允许用户授权第三方应用访问他们存储在特定服务上的数据,而无需共享他们的登录凭据。OAuth 2的...

    Shiro集成OAuth2

    Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、会话管理和加密等功能,而OAuth2则是一种开放标准,用于授权第三方应用访问用户资源。将Shiro与OAuth2集成,可以实现更灵活的安全控制,特别是在...

    SpringCloud(八):API网关整合OAuth2认证授权服务

    SpringCloud(八):API网关整合OAuth2认证授权服务。

    转:浅析作用于web2.0安全防范的OpenID和Oauth机制.pdf

    - **提升应用安全**:对于开发者来说,采用OpenID与OAuth可以显著简化身份验证和授权流程,避免了自行开发认证系统的复杂性和潜在安全漏洞。 #### 四、结论 综上所述,Web2.0的安全威胁主要来源于授权访问机制不...

    整合Apache Oltu 与 Shiro. 提供一个轻量的OAUTH2应用框架

    Apache Oltu和Apache Shiro都是在IT领域中广泛使用的开源项目,它们分别专注于身份验证、授权和OAuth2协议的实现。将这两个组件整合在一起,可以构建出一个强大的、轻量级的安全应用框架,适用于各种应用场景,包括...

    OpenID & OAuth

    比如Google的OpenID和OAuth Hybrid方案,用户可以通过OpenID进行身份验证,然后使用OAuth授权特定应用访问Google的API和服务。 OpenID和OAuth的普及得益于许多大型企业和机构的支持,如Google、Facebook、Yahoo!、...

    Python-NET标准助手库用于基于声明的身份OAuth20和OpenIDConnect

    标题中的“Python-NET标准助手库用于基于声明的身份OAuth20和OpenIDConnect”表明这是一个针对.NET标准的Python库,其主要功能是协助处理身份验证和授权,具体涉及OAuth 2.0和OpenID Connect协议。这两个协议在现代...

    appdirect-storelocator:使用 OAuth 和 OpenID 与 AppDirect 平台集成的示例 Play 应用程序

    一个示例 Play Framework 应用程序,它使用双腿 OAuth (v1) 和 OpenID 进行 SSO 与 AppDirect 的平台集成。 默认情况下,它使用 H2 内存数据库进行“持久化”,使用 Slick 与数据库交互。 入门 注意:该应用程序要求...

    授权服务器:Spring Boot OAuth 2.0和OpenID Connect身份提供者授权服务器

    授权服务器兼容OAuth 2.0和OpenID Connect(OIDC)的授权服务器,仅用于演示目的,可用作OAuth2 / OIDC研讨会的一部分。目标此授权服务器应... 作为开源免费提供支持学习OAuth2 / OpenID Connect的努力(自学或作为...

    jmeter 实现oauth1.0授权认证

    在本文中,我们将深入探讨如何使用Apache JMeter进行OAuth 1.0授权认证。OAuth 1.0是一种授权协议,允许第三方应用安全地访问用户在另一服务上的资源,而无需获得用户的用户名和密码。JMeter是一款强大的性能测试...

    springboot-security-oauth2 权限验证

    本项目“springboot-security-oauth2”旨在实现基于Spring Boot的权限验证机制,利用Security的认证和授权功能,以及OAuth2的授权框架,为应用程序提供安全的访问控制。 首先,Spring Boot是Spring框架的简化版,它...

    googleauth-为命令行应用程序创建和更新谷歌OAuth2.0身份验证令牌

    `googleauth` 是一个Node.js库,专为命令行应用程序设计,帮助开发者轻松创建和更新与Google服务相关的OAuth2.0身份验证令牌。下面我们将深入探讨`googleauth`库及其在实际开发中的应用。 首先,OAuth2.0是一种授权...

    springboot整合oauth2

    在本项目中,"springboot整合oauth2" 是一个基于Spring Boot框架实现的OAuth2认证与授权服务。OAuth2是一个开放标准,它允许用户提供一个令牌(Token),而不是用户名和密码来访问他们存储在特定服务提供者的数据。...

    Android代码-OAuth 2.0和 OpenID 通信SDK

    OpenID Connect providers. It strives to directly map the requests and responses of those specifications, while following the idiomatic style of the implementation language. In addition to mapping the ...

Global site tag (gtag.js) - Google Analytics