`
vrspider
  • 浏览: 6283 次
  • 性别: 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中注册您...

    Shiro集成OAuth2

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

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

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

    构建OAuth OpenID连接客户端和服务器的终极Python库包括JWSJWEJWKJWAJWT.zip

    在当今互联网应用中,身份验证和授权的实现方式多种多样,而OAuth 2.0和OpenID Connect作为两个广泛使用的协议,为开发者提供了一种安全的方式来实现基于令牌的认证。OAuth 2.0允许用户授权第三方应用访问他们存储在...

    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),而不是用户名和密码来访问他们存储在特定服务提供者的数据。...

Global site tag (gtag.js) - Google Analytics