再谈OAuth和Connect

这两天又一次反复考虑和均衡把握衡量了一下OAuth和Connect两种开放平台授权模式。

再说一下它们之间的比较重要的区别:

 

1.OAuth的授权流程主要是通过Request Token和Access Token完成的,而Connect的授权流程主要是通过SessionKey完成的。

SessionKey ,用来维护用户的登录状态。 SessionKey 的有与没有,失效与否,代表用户是否已经登录开放平台。 SessionKey 用户和第三方应用是可以拿到的。

SessionKey 并非是一个 OAuth 名词。由于在整个流程中,存在Session跨域现象,导致了如果用户与第三方应用会话失效需要重新登录的问题。为了解决这个问题,需要使用一个标识来标示用户是否已经登录。该值可以在多个网站之间通过 URL 相互传递。

为了安全,使用Connect,必须要使第三方应用与开放平台之间的交互加上签名。

Request Token ,代表一个第三方应用,用户可以对 Request Token 授权。分为两种状态,授权与为授权。 Request Token 的有效期很短,只供授权和换取 Access Token 使用。 Request Token 用户和第三方应用可以拿到。

Access Token ,代表一个第三方应用的访问数据权利,第三方应用可以使用它来访问内部的某个账户对应的数据。 Access Token 只有第三方应用可以拿到。

OAuth 之所以要使用 Request Token Access Token 两个,就是为了安全考虑。在第三方应用和开放平台 之间的交互无需签名的情况下,用户无法使用 Request Token 拿到开放平台内部的数据。

而假如有黑客的情况,其拿到 Access Token 则会有问题。只能使用签名部分解决这个问题。

 

2.绝大部分情况下,Access Token的有效期都是无限长时间的。这样,除非用户取消授权,第三方应用可以通过Access Token永久性的获取用户数据(无论用户是否在线和登录);

而相对应的SessionKey,只有用户登录后,在会话的存续期才有效,其他时候是失效的,则第三方应用只有在用户登录并且进入应用时,才能获取开放平台的数据,其他情况下,是不能获取数据的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值