如何用Qt实现对Google API的应用(1)-- OAuth认证详述
2011-02-17 22:14
309 查看
对OAuth的介绍,大家可以参照http://oauth.net/documentation/getting-started/
而对于如何使用OAuth,我想,这是我们所需要关注的重点。
对于应用OAuth来说,抛开具体的协议不说,首先我们需要知道以下几个问题的答案:
1. 我们用OAuth,最终是为了得到什么 ?
A:为了或者Access token,这个token类似于cookie里面的token,我们用它来作为Authorization header里面关键的验证信息
2. Access token如何获得?
A: Access token的获得一般来说需要3 steps,也就是OAuth或者Google文档里经常提到的3-legged方式。区别于2-legged,我们可以简单的理解为,2-legged方式适用于google api的付费consumer,特别是web application,需要先在google account上注册服务。而3-legged方式,适用于第三方的非web应用,比如手机或者桌面非web方式的application。
对于Access token的获得过程,使用3-legged方式为, a.先向google request token(第一个token),b.使用a中获取的token向google account申请授权(token与a中相同),c.授权后,再用之前的token申请access token,申请时,需要授权后提供的verfier信息
3. 什么叫Signing OAuth requests?
A: 对提交的用来申请token的request进行签名,request就是使用Get方式向google提出的token请求,在Access token获取过程中(3-legged),每次都需要对request进行签名。
4. 怎样Sign OAuth request?用Qt又如何实现呢?
A: 不好意思,这里只针对非web application的签名方式进行讲解。对于非web应用的情况,采用HMAC_SHA1进行加密,需要一个key和一个base string。这两者有具体的生成方式,将在后面阐述。Qt中的QCryptographicHash有SHA1的加密方式,可以用来辅助完成这一步骤。P.S. 并不是单纯的使用QCryptographicHash就可以对字符串进行加密,还需要将key和base string根据hmac_sha1的方式先进行变换,具体的做法会在后面补上。
5. Access Token的使用时限是多久?
A: 根据Google的说法,一般Access Token的使用时限比较长,但是实际使用过程中发现,它也很容易实效。至于是否是过期,还待进一步验证。
而对于如何使用OAuth,我想,这是我们所需要关注的重点。
对于应用OAuth来说,抛开具体的协议不说,首先我们需要知道以下几个问题的答案:
1. 我们用OAuth,最终是为了得到什么 ?
A:为了或者Access token,这个token类似于cookie里面的token,我们用它来作为Authorization header里面关键的验证信息
2. Access token如何获得?
A: Access token的获得一般来说需要3 steps,也就是OAuth或者Google文档里经常提到的3-legged方式。区别于2-legged,我们可以简单的理解为,2-legged方式适用于google api的付费consumer,特别是web application,需要先在google account上注册服务。而3-legged方式,适用于第三方的非web应用,比如手机或者桌面非web方式的application。
对于Access token的获得过程,使用3-legged方式为, a.先向google request token(第一个token),b.使用a中获取的token向google account申请授权(token与a中相同),c.授权后,再用之前的token申请access token,申请时,需要授权后提供的verfier信息
3. 什么叫Signing OAuth requests?
A: 对提交的用来申请token的request进行签名,request就是使用Get方式向google提出的token请求,在Access token获取过程中(3-legged),每次都需要对request进行签名。
4. 怎样Sign OAuth request?用Qt又如何实现呢?
A: 不好意思,这里只针对非web application的签名方式进行讲解。对于非web应用的情况,采用HMAC_SHA1进行加密,需要一个key和一个base string。这两者有具体的生成方式,将在后面阐述。Qt中的QCryptographicHash有SHA1的加密方式,可以用来辅助完成这一步骤。P.S. 并不是单纯的使用QCryptographicHash就可以对字符串进行加密,还需要将key和base string根据hmac_sha1的方式先进行变换,具体的做法会在后面补上。
5. Access Token的使用时限是多久?
A: 根据Google的说法,一般Access Token的使用时限比较长,但是实际使用过程中发现,它也很容易实效。至于是否是过期,还待进一步验证。
相关文章推荐
- 如何用Qt实现对Google API的应用(2)-- OAuth的各步骤实现
- 关于微博服务端API的OAuth认证实现
- beego应用做纯API后端如何使用jwt实现无状态权限验证
- 关于微博服务端API的OAuth认证实现
- Androd学习笔记——[转]如何实现新浪微博OAuth认证
- 关于微博服务端API的OAuth认证实现
- GoogMap的简单实现(GoogleMapApI简单应用)
- 服务端API的OAuth认证实现
- 关于微博服务端API的OAuth认证实现
- 如何用Google APIs和Google的应用系统进行集成(3)----调用Google 发现(Discovery)API的RESTful服务
- 如何使用win32 API实现将文件放入回收站
- Qt 如何消除边框 及 实现透明底色
- 如何实现只允许应用服务器连接mysql
- 怎样用Google APIs和Google的应用系统进行集成(3)----调用Google 发现(Discovery)API的RESTful服务
- 如何实现不需要口令认证的ssh登陆
- 在AngularJS应用中实现认证授权
- QT如何实现控件倒影特效
- 如何实现应用系统的质量属性
- Google Open API授权认证体系
- 【C++ STL应用与实现】5: 如何使用std::array (since C++11)