引诱Google蜘蛛的甜点 – GSD
Google Open API 授权认证体系
终端用户在使用第三方软件访问用户受保护的资源时,都需要终端用户授权给第三方软件。如用户在使用第三方软件需要访问或者操作用户在Google上 注册的服务(Gmail服务,Calendar服务等)时,就需要用户将相关资源的权限授权给该软件。Google除了提供了很多个性化的服务外,同时提 供了一套完整的服务授权体系。Google的服务认证体系包含了多种认证授权的方式,如AuthSub授权认证服务、OAUTH授权认证服务与 ClientLogin授权认证服务等。软件开发商可以根据自己软件的特点来选择合适的认证方式。本文将简要的介绍这三种认证服务。
一、Google授权认证体系
Google的服务认证体系包含了多种认证授权的方式,到目前为止,Google提供了以下四种授权认证方式:AuthSub授权认证服务、OAUTH授权认证服务、ClientLogin授权认证服务与Gadgets授权认证服务等(ref:http://code.google.com/intl/zh-CN/apis/gdata/auth.html)。如下图所示:
软件开发商可以根据自己软件的类型来选择合适的认证方式。如果你的软件是单机版的应用(如单机版的桌面应用)时,你应该选择ClientLogin 授权认证服务;如果你的软件是基于BS多用户使用的WEB应用时,你可以考虑选择AuthSub授权认证服务或者OAUTH授权认证服务;如果你的应用是 小工具(小工具是简单的HTML和JavaScript应用程序,可以嵌入到网页中或其他应用程序中,比如为iGoogle或者Open Social容器开发的小工具)类型的软件时,就应该是用Gadgets授权认证服务。
在对Google Open API授权认证体系有了基本了解后,我们就逐一认识下每种授权认证方式的业务流程。
二、Google ClientLogin授权认证
当你开发的程序是单机版、需终端用户安装的桌面程序时,就要采用ClientLogin的授权认证方式。由ClientLogin的意思,我们基本上就知道该授权认证服务是基于终端用户的帐号信息(即用户名与密码)进行登录校验来进行授权的。
Google ClientLogin授权认证的服务地址是:
https://www.google.com/accounts/ClientLogin 第三方软件拿着用户提供的Google帐号
信息请求该服务地址进行检验,校验通过后,Google服务将Auth Token返回给第三方软件
,这样以后第三方软件就可以拿着这个Auth Token访问该用户在Google上注册的服务资源
。由于第三方软件是单用户使用的,本地安装的软件,所以用户的帐号信息不会泄漏,因
而是安全的。ClientLogin授权认证服务的具体步骤如下图所示:
1.终端用户使用第三方软件操作自己在Google注册的某项服务之前,就会使用自己的帐号去请求Google ClientLogin服务地址。请求只能使用HTTP POST,默认的Content-Type是application/x-www-form-urlencoded类型的。请求需要的参数如下表所示,参 数应放在POST请求的包体中。
参数 | 描述 |
accountType | 账户类型:GOOGLE 、HOSTED、HOSTED_OR_GOOGLE |
注册邮箱 | |
Passwd | 注册密码 |
service | 需授权访问的服务名,服务名格式可以以如下形式提供:companyName-applicationName-versionID |
source | 申请授权的第三方应用名 |
logintoken | 可选,验证码的token |
logincaptcha | 可选,验证码 |
2.Google ClientLogin服务将校验用户的帐号信息,校验通过将为第三方软件颁发Auth Token并放置在响应的包体中。若检验失败将返回403HTTP状态码。
3.第三方软件解析Google ClientLogin服务的响应包体,并解析出Auth token的值。以后只需要带上该token就可以访问用户授权的服务资源。
4.Google服务将响应第三方软件的请求并处理之。
三、Google OAUTH授权认证
当你开发的程序是基于BS的多用户使用的WEB应用时,就可以使用AuthSub授权认证服务或者OAUTH授权认证服务,我们先介绍Google 的OAUTH授权认证服务。OAUTH是一种规范,前一篇文章已经对OAUTH规范进行过介绍。既然OAUTH是一种规范,Google OAUTH也应该遵循该规范,所以在此不再对OAUTH展开讨论,只会简单介绍下Google OAUTH服务。
先介绍Google OAUTH三个服务的URL
·请求未授权的Request Token服务地址:
https://www.google.com/accounts/OAuthGetRequestToken
·请求授权的
Request Token服务地址:
https://www.google.com/accounts/OAuthAuthorizeToken
·
请求
Access Token
服务地址:
https://www.google.com/accounts/OAuthGetAccessToken
Google OAUTH具体的流程如下图所示:
1.用户使用第三方软件操作用户在Google上的若干个服务资源前,第三方软件先向Google OauthGetRequestToken服务请求办法未授权的Request Token。
2.Google收到第三方软件的请求后,判断该软件是否注册。若软件注册了,就为其颁发未授权的Request Token。
3.第三方软件拿到未授权的Request Token后,向Google OauthAuthorizeToken服务请求用户为其未授权的Request Token进行授权。
4.Google收到第三方软件的请求后,引导用户进行登录授权,并提示用户哪些资源要授权,是否确认授权。
5.用户确认是否授权。
6.若用户同意授权,Google将向用户返回授权的Request Token。
7.第三方软件拿到用户授权的Request Token后,向Google OauthGetAccessToken服务请求将授权的Request Token换取Access Token。
8.Google认证请求,通过认证便向第三方软件颁发Access Token。
9.第三方软件每次访问后只要带上Access Token就可以访问用户授权的资源
10.Google 处理第三方软件的请求。
Google OAUTH 提供了一个Demo 环境,大家可以去http://googlecodesamples.com/oauth_playground/ 体验下。由于本人(本人没有自己的网站,只是想了解下,Yahoo,Flickr对于初学者或者非商业人员提供了非商用的consumer key的申请)一直没有申请到Google OAUTH Consumer key,所以没办法自己写代码去测试。
四、Google AuthSub授权认证
当你开发的程序是基于BS的多用户使用的WEB应用时,可可以考虑采用Google AuthSub的认证方式。那Google AuthSub与Google OAUTH有什么区别了?一、Google OAUTH认证是遵守国际OAUTH规范的,是一种标准化的东西,而Google AuthSub只是Google自己实现的一种方式,是非标准化的;二、Google OAUTH是开放的,与OpenId结合,将Google用户体系与其他服务提供商用户体系、授权服务打通,比Google AuthSub更开放;三、Google OAUTH将请求都进行签名,而AuthSub没有,安全性没有OAUTH高。当然,AuthSub也有自己的优势:第三方应用与Google认证中心交 互过程简单,开发人员更容易理解与实现。如果你开发出来的程序只涉及到了Google的服务,不妨先考虑AuthSub认证方式,应该它比Google OAUTH更方便。
Google AuthSub认证流程如下图所示:
1.第三方Web应用向Google 认证中心发起AuthSub认证请求,Google AuthSub的授权认证服务请求地址为:https://www.google.com/accounts/AuthSubRequest 。
2.Google认证中心收到第三方Web应用的AuthSub请求后,将引导用户登录(若用户没有登录)并提醒用户是否将相关受保护资源授权给第三方Web应用。
3.用户登录(若没登录)并确认是否同意授权给第三方Web应用。
4.Google将根据用户的操作响应第三方Web应用。若用户同意授权,将会为第三方Web应用办法Token并返回给第三方应用。
5.第三方Web应用收到Google的Token后,带上它就可以访问用户授权的Google服务资源。
6.Google响应第三方应用请求并将处理结果返回给它。
Google提供了一个Demo,下面是用户登录授权的页面:
Google Friend Connect for WordPress 插件
Google Friend Connect 是 Google 推出的社会化网络工具,Google Friend Connect 是一种类似于加入到你网站的 Widget 的社会化工具,通过此工具你可以将各种支持 OpenSocial 的应用都可以通过 Google Friend Connect 在你的网站上应用,并且可以已有的社会化网络进行整合应用。
很快 Google 就开放了 “Google Friend Connect 的 API“, 让你能够访问到更多 Google Friend Connect 核心的数据和功能。由于 Google Friend Connect 除了支持 Google 自身的账号之外,还支持 Yahoo 和 AIM 账号,以及 OpenID,所以 Google Friend Connect 开放 API,使得 Google Friend Connect 成为一种和 OpenID 一样的单点登录的工具,并且由于其支持的广泛性,使得 Google Friend Connect 在单点应用上变得更加广泛。
Google 在开放 Friend Connect API 的同时,也制作了 WordPress 插件,我这几天测试了一下,下面就讲讲详细的使用过程:
1. 到这里下载 Google Friend Connect for WordPress 插件。
2. 解压缩开之后,编辑 fc-plugin.php 修改下 fc_get_site_id 函数里面的 Returen 值,把设置为你站点在 Google Friend Connect 对应的值。
3. 把插件上传到 wp-content/plugin 目录,然后到 WordPress 后台激活即可。
4. 然后在留言框地方就会有一个 Sign in With Friend Connect 的按钮:
5. 点击该按钮和平常使用 Google Friend Connect 一样会弹出一个页面,让你选择登陆的方式:Google, AOL, Yahoo 或者 OpenID 的账号。
6. 登陆之后,就会返回原来的页面,并刷新该页成已登录状态。这个时候 Google Friend Connect 实际上已经在 WordPress 后台为当前用户创建了一个账号。
7. 现在就可以直接留言,并且留言的头像显示为你在 Google Friend Connect 上的头像。
8. 登陆之后,并且还有设置和邀请朋友的链接。如下:
关于这款插件就介绍的这里,你可以在留言框处点击 Sign in With Friend Connect 的按钮登陆并留言测试下效果。
Analytics360°:在 WordPress 后台查看 Google Analytics 统计
Google Analytics 今年4月份就开放了 Data Export API,它允许用户访问到他们的 Google Analytics 数据,并整合到现有的网站中。WordPress 很多用户也开做着方面的整合工作,其中做的最好的是 MailChimp 的 Analytics360° 插件。
MailChimp 本身是一家邮件营销服务提供公司,它所开发的 Analytics360° 插件除了集成 Google Analytics 服务之后,还整合他自己的 RSS-to-Email 的服务,所以 Analytics360° 允许你把 Google Analytics 和 MailChimp 的数据直接集成到你的 WordPress 博客的 Dashboard,这样你无需离开你的 WordPress 博客就可以访问到你 Analytics 数据,由于 MailChimp 的 RSS-to-Email 服务我们使用很少或者基本不使用,下面主要讲讲这个插件的 Google Analytics 功能:
站点整体流量
Analytics360° 通过图表的形式显示站点的流量和趋势,并且还可以显示你博客日志和 email 营销对整体流量的影响,另外还可以单独查看搜索引擎来的流量和来源的流量等,并且可以设置时间段。
Traffic By Region
Analytics360° 还会以世界地图的方式显示你博客在世界各地的流量。
Referring Traffic Overview
Analytics360° 以一个饼图显示流量来源分别在搜索引擎,其他来源,直接输入中各占的比例。
Top Referrers
我相信这个是 Analytics360° 插件做的最好的地方,它可以让你查看你博客流量来源的最多的站点,并且还可以查看每个来源的具体信息,如果是搜索引擎,它显示关键字,如果其他来源,它显示具体的 URL 地址。
Top Content
显示博客流量最高的文章。
Analytics360° 安装非常简单,通过 WordPress Admin 后台添加该插件即可,然后在 Setting =》 Analytics360° 设置好你的 Google Analytics 帐号,然后就可以在 Dashboard =》 Analytics360° 查看你的博客的流量了。
在google上搜索可以发外链的网站的关键字
DEDECMS: allintext:Powered by Copyright ? 2002-20XX DEDECMS
WiKi: allintext:Powered by HDWiKi V 4.0.4
BBSXP: allintext:Powered by BBSXP 7.00 Beta 2 ACCESS
Discuz: allintext:Powered by Discuz
blog:
allintext: Create an Account Account Details Profile Details Blog Details Yes, I’d like to create a new blog
allinurl: blog.php?user=
allintext: wordpress