Android-oauth2.0

最近需要用到oauth2.0来实现第三方登录,也就是我们常用的QQ登录其他软件,这几天也是看了很多资料,也看了很多其他大神的博客,略懂了一些。

oauth2.0是什么?

(一开始不了解,一脸懵逼。。。)
官网的解释:
Android-oauth2.0_第1张图片
什么?英文不好?!!四六级没过?!没关系

百度的:
Android-oauth2.0_第2张图片

OAuth(即Open Authorization,开放授权),它是为用户资源授权提供了一种安全简单的标准,也就是说用户在访问第三方web或应用的时候,第三方不会知道用户的信息(登录密码等),现在基本都支持OAuth2.0版本。

这么官方的解释,当时我看到这里脑子的只有几个关键词,“protocol”“authorization”“协议”“第三方”“权限”。

好吧。知道是什么了,接下来就看看

原理怎么实现

Android-oauth2.0_第3张图片

(A)用户打开客户端以后,客户端要求用户给予授权。
(B)用户同意给予客户端授权。
(C)客户端使用上一步获得的授权,向认证服务器申请令牌。
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
(E)客户端使用令牌,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资源。

然后这时候就又有冒一个问题了,

怎么授权?


这里呢,授权模式有四种,现在选择用授权码模式。因为这是比较严密的授权模式

Android-oauth2.0_第4张图片

A)用户访问客户端,后者将前者导向认证服务器。
(B)用户选择是否给予客户端授权。
(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的”重定向URI”(redirection URI),同时附上一个授权码。
(D)客户端收到授权码,附上早先的”重定向URI”,向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。
(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。

还不清楚?不要紧。一图胜千言

Android-oauth2.0_第5张图片

这下总算清楚了大概的过程了。。。。

想深入地再了解,推荐一下的博客:

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html?spm=0.0.0.0.TbQtUH

http://blog.csdn.net/seccloud/article/details/8192707?ticket=ST-69891-4v9NCELZcGSE1MZGMqVT-passport.csdn.net

那接下来,就是动动手了。

(侵权即删~)

你可能感兴趣的:(Android)