最近一个小项目需要整合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的安全威胁主要来源于授权访问机制不...
比如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的努力(自学或作为...
本项目“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),而不是用户名和密码来访问他们存储在特定服务提供者的数据。...
对于企业环境,特别是那些使用钉钉和企业微信等协作平台的企业,这个系统提供了集成能力,使得员工可以通过这些平台进行身份验证,进一步简化了登录流程,提高了工作效率。 arkid-2.6.13可能是该解决方案的一个版本...
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 ...
具有通用的,符合规范的实现,以构建客户端和提供程序:OAuth 1.0协议RFC5849:OAuth 1.0协议OAuth 2.0授权框架RFC6749:OAuth 2.0授权框架RFC6750:OAuth 2.0授权框架:承载令牌使用RFC7009:OAuth 2.0代币撤销