最近一个小项目需要整合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
分享到:
相关推荐
SpringBoot整合OAuth2和Gateway实现网关登录授权验证是一个复杂而关键的过程,它涉及到现代微服务架构中的安全性设计。OAuth2是一种授权框架,用于保护API并允许第三方应用访问受保护的资源,而Spring Gateway作为...
而OAuth2和JWT(JSON Web Token)是两种广泛用于身份验证和授权的技术。本篇文章将深入探讨如何在Spring Cloud项目中整合OAuth2和JWT,以及与MyBatis的集成。 首先,OAuth2是一个开放标准,主要用于授权。它允许第...
OpenID和OAuth是互联网上两种重要的身份验证和授权协议,它们在确保用户数据安全和隐私保护方面发挥着关键作用。本文将对这两种协议进行详细解释。 **OpenID协议** OpenID是一个分散式身份验证协议,它允许用户...
这需要创建对应的数据库表,如`oauth_client_details`,并使用Spring Data JPA或MyBatis等ORM框架进行操作。 3. **生成 clientId 和 clientSecret**:为了安全起见,`clientSecret`不应该明文存储。项目中提供的...
本文将深入探讨两种使用SpringMVC实现微信企业号OAuth2验证接口的方法。 一、注解方式实现OAuth2验证 1. 配置OAuth2客户端:首先,你需要在SpringMVC的配置文件中添加OAuth2客户端的相关配置,包括appid、app...
使用OAuth 2.0和OpenID Connect的微服务在Google中进行身份验证并向用户获取信息。 技术栈: Maven; Sprint Boot; Spring网 Spring安全; OAuth2身份验证; Angular JS,HTML,CSS。 1.要在Google App中注册您...
2. **OAuth 2**: OAuth 2 更加简单,常用于Google、Facebook、GitHub等平台的API授权。它主要关注的是授权而不是认证,允许用户授权第三方应用访问他们存储在特定服务上的数据,而无需共享他们的登录凭据。OAuth 2的...
Apache Shiro是一个强大的Java安全框架,它提供了身份验证、授权、会话管理和加密等功能,而OAuth2则是一种开放标准,用于授权第三方应用访问用户资源。将Shiro与OAuth2集成,可以实现更灵活的安全控制,特别是在...
SpringCloud(八):API网关整合OAuth2认证授权服务。
- **提升应用安全**:对于开发者来说,采用OpenID与OAuth可以显著简化身份验证和授权流程,避免了自行开发认证系统的复杂性和潜在安全漏洞。 #### 四、结论 综上所述,Web2.0的安全威胁主要来源于授权访问机制不...
Apache Oltu和Apache Shiro都是在IT领域中广泛使用的开源项目,它们分别专注于身份验证、授权和OAuth2协议的实现。将这两个组件整合在一起,可以构建出一个强大的、轻量级的安全应用框架,适用于各种应用场景,包括...
比如Google的OpenID和OAuth Hybrid方案,用户可以通过OpenID进行身份验证,然后使用OAuth授权特定应用访问Google的API和服务。 OpenID和OAuth的普及得益于许多大型企业和机构的支持,如Google、Facebook、Yahoo!、...
标题中的“Python-NET标准助手库用于基于声明的身份OAuth20和OpenIDConnect”表明这是一个针对.NET标准的Python库,其主要功能是协助处理身份验证和授权,具体涉及OAuth 2.0和OpenID Connect协议。这两个协议在现代...
一个示例 Play Framework 应用程序,它使用双腿 OAuth (v1) 和 OpenID 进行 SSO 与 AppDirect 的平台集成。 默认情况下,它使用 H2 内存数据库进行“持久化”,使用 Slick 与数据库交互。 入门 注意:该应用程序要求...
授权服务器兼容OAuth 2.0和OpenID Connect(OIDC)的授权服务器,仅用于演示目的,可用作OAuth2 / OIDC研讨会的一部分。目标此授权服务器应... 作为开源免费提供支持学习OAuth2 / OpenID Connect的努力(自学或作为...
在本文中,我们将深入探讨如何使用Apache JMeter进行OAuth 1.0授权认证。OAuth 1.0是一种授权协议,允许第三方应用安全地访问用户在另一服务上的资源,而无需获得用户的用户名和密码。JMeter是一款强大的性能测试...
本项目“springboot-security-oauth2”旨在实现基于Spring Boot的权限验证机制,利用Security的认证和授权功能,以及OAuth2的授权框架,为应用程序提供安全的访问控制。 首先,Spring Boot是Spring框架的简化版,它...
`googleauth` 是一个Node.js库,专为命令行应用程序设计,帮助开发者轻松创建和更新与Google服务相关的OAuth2.0身份验证令牌。下面我们将深入探讨`googleauth`库及其在实际开发中的应用。 首先,OAuth2.0是一种授权...
在本项目中,"springboot整合oauth2" 是一个基于Spring Boot框架实现的OAuth2认证与授权服务。OAuth2是一个开放标准,它允许用户提供一个令牌(Token),而不是用户名和密码来访问他们存储在特定服务提供者的数据。...
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 ...