Skip to content

天楚锐齿

人工智能 云计算 大数据 物联网 IT 通信 嵌入式

天楚锐齿

  • 下载
  • 物联网
  • 云计算
  • 大数据
  • 人工智能
  • Linux&Android
  • 网络
  • 通信
  • 嵌入式
  • 杂七杂八

Google OAUTH + OpenID 给第三方授权

2018-03-10

 

OPENID操作过程:
假如自己有网站www.hanborq.com,想要google的用户也能登录,则要做如下操作:
1. 把自己的网站注册到google:https://www.google.com/accounts/ManageDomains
2. 在google上管理自己的网站:https://www.google.com/accounts/ManageDomains ,其中Target URL path prefix:表示的是鉴权完成后将会返回的地址及token。
3. 测试:点击测试时将会跳转到这个地址继续执行:http://www.hanborq.com/authsub?token=1%2FK_dvV72aicVeZ6FUSK0s6TLbfayj0t4srgoOyG4BeWA
OAUTH2操作过程:
文档:http://code.google.com/intl/zh-CN/apis/accounts/docs/OAuth2.html (含web javascript访问方式、web服务器访问方式,应用程序访问方式,下面置说明了web方式过程):
1. 注册到google:https://code.google.com/apis/console,选择API Access,需要翻墙。
Client ID:
133501856298.apps.googleusercontent.com
Client secret:
X-rMJocMGJ3DDNbMgS-iFO9X
Redirect URIs:
http://www.hanborq.com/oauth2callback
JavaScript origins:
http://www.hanborq.com
2. 授权访问方法(注:client_id和redirect_uri跟上面注册的对应,scope对应某种API,需要看文档):
https://accounts.google.com/o/oauth2/auth?client_id=133501856298.apps.googleusercontent.com&redirect_uri=http://www.hanborq.com/oauth2callback&scope=https://www.google.com/m8/feeds/&response_type=token
3. 登录同意之后返回结果:
http://www.hanborq.com/oauth2callback#access_token=1/OfzgA-aTO0E39MIXx0WXq9TljTfd7-6lQeHhITVKskk&expires_in=3600
注意到返回了access_token和超时值。
4. 最后使用这个返回的token:
https://www.google.com/m8/feeds/contacts/default/full?oauth_token=1/OfzgA-aTO0E39MIXx0WXq9TljTfd7-6lQeHhITVKskk
这里前缀为第一次请求里面的scope,后面带了oauth_token为上面的access_token。
如果要得到用户名、邮箱地址,则使用下面链接,返回的XML包含<id>为邮箱,<title>里面含有用户名:
https://www.google.com/m8/feeds/contacts/default/thin?oauth_token=1/kX440CrtSTHg6imATBUMbXTQi2LrxLlo1tPS7D39s4g&max-results=0
scope列表:
Google API
Service name
Google Analytics Data API
https://www.google.com/analytics/feeds/
Google Base Data API
http://www.google.com/base/feeds/
Google Sites Data API
http(s)://sites.google.com/feeds/
Blogger Data API
http://www.blogger.com/feeds/
Book Search Data API
http://www.google.com/books/feeds/
Calendar Data API
http(s)://www.google.com/calendar/feeds/
Contacts Data API
http(s)://www.google.com/m8/feeds/
Documents List Data API
http(s)://docs.google.com/feeds/
Finance Data API
http://finance.google.com/finance/feeds/
Gmail Atom feed
https://mail.google.com/mail/feed/atom/
Health Data API
https://www.google.com/health/feeds/
https://www.google.com/h9/feeds/ (H9 sandbox)
Maps Data API
http://maps.google.com/maps/feeds/
Picasa Web Albums Data API
http://picasaweb.google.com/data/
Sidewiki Data API
http://www.google.com/sidewiki/feeds/
Spreadsheets Data API
http(s)://spreadsheets.google.com/feeds/
Webmaster Tools API
http://www.google.com/webmasters/tools/feeds/
YouTube Data API
http://gdata.youtube.com
得到gtalk用户名、头像          www-opensocial.googleusercontent.com/api/people/@me (http头里面必须包含Authorization: OAuth <token>,oauth_token就不用了)

Google OAUTH + OpenID 给第三方授权

可以通过Google OAuth服务为Google 用户的资源进行授权,如用户通过第三方软件调用Google Open API操作用户的资源时,就需要用户对第三方软件授权;通过Google OpenID服务可以打通Google与其他支持OpenID服务网站之间的用户体系。现在假如有另外一个网站,也想开放自己的Open API服务,但是又不想实现OAuth服务(毕竟实现OAUTH服务还是需要一些成本的),那该怎么办?它可不可以使用Google提供的OAuth服 务,授权认证交给Google来处理?可以!但是OAuth授权也是基于用户登录来实现的,Google OAuth用户体系只是Google的用户体系,那又怎么办了?OpenID!对,将网站的用户体系与Google用户体系打通,并且使用Google OAuth服务来实现授权,即Google提出的OpenID + OAUTH的解决方案。
一、 OAUTH 与 OpenID
前面两篇文章对 OAuth 与 OpenID 均做过介绍,且Google均提供了这两种服务,在此我们先简要的回顾这两种服务,具体介绍请参见相关文章。
OAUTH是一种开放的,基于用户登录的授权认证方式。如当用户使用第三方软件调用Google Open API去操作自己的Google服务资源时,用户就要先对该软件授权。授权过程中,第三方软件会引导用户登录Google,进行用户鉴权,用户通过 Google身份鉴权后才能对第三方软件授权。显然,Google OAUTH只能对Google用户进行鉴权,其他用户体系的用户不能直接鉴权。
OpenID是一种开放的,去用户中心的,用于打通各网站之间的用户体系的服务。在支持OpenID的网站间,你可以使用任何一个网站的帐号或者 Open ID去登录任何一个网站。OpenID提供了类似单点登录的用户体验,并且用户无需在各个网站上注册就可以使用该网站的资源,将用户从繁重的帐号注册与管 理工作中解脱出来。当用户使用OpenID登录没注册的网站过程中,网站会引导用户登录OP(用户OpenID注册的网站),请求OP对用户身份鉴权,用 户通过OP鉴权,网站才会容许用户登录。
若将OpenID与Google OAUTH结合,OpenID将第三方网站的用户体系与Google用户体系打通后,第三方网站便可使用Google OAUTH服务,对自己的用户进行授权!交互示意图如下图所示:
二、 Google OAUTH + OpenID解决方案
Google提出了OpenID + OAUTH的解决方案,将两者揉合在一起,具体流程如下图所示:
1. Web应用请求用户登录;
2. 用户选择使用Google OpenID进行登录;
3. Web应用请求发现Google认证服务URL;
4. Google向Web应用返回XRDS信息,其中包含Google认证服务URL;
5. Web应用请求用户登录Google服务,通过请求用户授权;
6. Google引导用户登录;
7. 用户输入用户名密码进行登录,同时确认是否对第三方软件授权;
8. Google认证中心返回用户ID与授权的Request Token给Web应用;
9. 用户可以访问受保护的资源,同时可以继续第七部中Oauth认证余下的环节;
从上面的流程第五步可以看出,Google解决方案中,将OAUTH与OpenID的登录操作合并在一起、并且在登录的同时向Google发送 Oauth请求,请求用户授权。这样一来,在第五步中,用户登录Google(OpenID中Google对用户鉴权),同时请求对用户授权(OAUTH 中对用户授权,同时无需再次登陆,因为前面OpenID已经登录过了)。
三、Google OAUTH+OpenID Demo
Google提供了OAUTH + OpenID的DEMO,Demo演示地址如下:http://googlecodesamples.com/hybrid/
刚开始,用户既没OpenID登录也没OAUTH授权,如下图所示:
接着,点击上图中login按钮请求以Google提供的OpenID登录,如下图所示:
输入用户名与密码登录后,Google提醒您即将登陆到外部网站,外部网站申请对您的资源进行授权,您是否同意,如下图所示:
点击继续登录后,登录成功,并且返回授权的Token,如下图所示:
1,597次阅读

Post navigation

前一篇:

OAuth、OAuth2协议-鉴权授权

后一篇:

Google用OAUTH2给第三方鉴权

发表回复 取消回复

要发表评论,您必须先登录。

个人介绍

需要么,有事情这里找联系方式:关于天楚锐齿

=== 美女同欣赏,好酒共品尝 ===

微信扫描二维码赞赏该文章:

扫描二维码分享该文章:

分类

  • Linux&Android (81)
  • Uncategorized (1)
  • 下载 (28)
  • 云计算 (38)
  • 人工智能 (9)
  • 大数据 (35)
  • 嵌入式 (34)
  • 杂七杂八 (35)
  • 物联网 (65)
  • 网络 (25)
  • 通信 (22)

归档

近期文章

  • 飞书机器人发送卡片interactive消息
  • Springboot JPA实现对数据库表统一的增删改查
  • WEB的内容安全策略CSP(Content-Security-Policy)
  • CSS利用@media和viewport实现响应式布局自动适配手机电脑等
  • VUE前端增加国际化支持

近期评论

  • linux爱好者 发表在《Linux策略路由及iptables mangle、ip rule、ip route关系及一种Network is unreachable错误》
  • maxshu 发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • Ambition 发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • Ambition 发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • maxshu 发表在《Android9下用ethernet 的Tether模式来做路由器功能》

阅读量

  • 使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序 - 23,810次阅读
  • 卸载深信服Ingress、SecurityDesktop客户端 - 18,519次阅读
  • 车机技术之车规级Linux-Automotive Grade Linux(AGL) - 10,570次阅读
  • linux下的unbound DNS服务器设置详解 - 9,323次阅读
  • 在Android9下用ndk编译vSomeIP和CommonAPI以及使用例子 - 9,136次阅读
  • linux的tee命令导致ssh客户端下的shell卡住不动 - 8,639次阅读
  • Linux策略路由及iptables mangle、ip rule、ip route关系及一种Network is unreachable错误 - 8,126次阅读
  • 车机技术之360°全景影像(环视)系统 - 8,088次阅读
  • 车机技术之Android Automotive - 7,940次阅读
  • Windows下安装QEMU并在qemu上安装ubuntu和debian - 7,840次阅读

其他操作

  • 注册
  • 登录
  • 条目 feed
  • 评论 feed
  • WordPress.org

联系方式

地址
深圳市科技园

时间
周一至周五:  9:00~12:00,14:00~18:00
周六和周日:10:00~12:00

标签

android AT命令 CAN centos docker Hadoop hdfs ip java kickstart linux mapreduce mini6410 modem nova OAuth openstack os python socket ssh uboot 内核 协议 安装 嵌入式 性能 报表 授权 操作系统 数据 数据库 月报 模型 汽车 深信服 源代码 统计 编译 脚本 虚拟机 调制解调器 车机 金融 鉴权
© 2025 天楚锐齿