精通Spring Boot—— 第二十一篇:Spring Social OAuth 登录简介

1.什么是OAuth

OAuth官网介绍是这样的:

An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.

翻译过来就是:

允许Web,移动端和桌面应用程序在一个简单、标准的方法中进行安全授权的开放协议

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站(应用)上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 我们现在常说的OAuth协议一般指的是OAuth2.0,目前大多数互联网公司开放API接口都基本上都支持OAuth2.0。

2.常见使用场景

举个例子,我们常见的微信授权登录,当我们下载了一款App(假设是Keep,我正在用的一个健身App),但我们懒得去注册新的账号,而我们又要使用该App的功能,如果该App提供了支持微信登录的“懒人”功能,那么你可以直接点击微信授权登录。那这么做有什么利弊呢? 第一:很显然,对客户来说,省去了注册的时间,更加方便,而且在微信已授权列表中,可以随意取消对该App的授权。 第二:对App来说,可以依赖社交账号,迅速发展用户,且可以采集该用户的一些信息(个人认为,某音这方面采集分析的有点过分了)

3.OAuth登录原理

先了解下OAuth中出现的几个名词:

  • 1.Provider:服务提供商。
  • 2.Resource Owner:资源所有者。
  • 3.Third-Party Client:第三方应用。

上述例子中,keep就是第三方应用,而微信就是服务提供商,客户就是资源所有者 用一个简单的流程图来描述下OAuth的登录流程:

4.授权模式

OAuth协议中的授权模式包括:授权码模式(authorization code), 简化模式(implicit),密码模式(resoure owner password credentials),客户端模式(client credentials)。 简化模式和客户端模式用的相对来说比较少,现在比较流行的都是使用授权码模式,也是我们学习的重点。

4.1 授权码模式

使用授权码模式时,第三方应用会将用户导向认证服务器,用户同意授权的动作会在认证服务器上完成。授权完毕之后,认证服务器会将用户重新导向至第三方应用,并且携带授权码,第三方应用收到授权码之后,再使用授权码向认证服务器申请令牌,如果认证服务器确认该授权码无误后,则会向第三方应用分配一个令牌。第三方应用再使用该令牌访问用户在资源服务器中的资源。流程图如下:

5. 总结

该篇文章主要是介绍一些有关OAuth协议的基本知识和认证原理,其中重点要了解的是OAuth中的授权码模式,目前大多数主流应用安全认证都是使用该模式。因为该模式相对于其他模式来说,流程是最完善、最安全的。如您看到该文后,有更好的资料可以在文章下方评论分享。感谢您的观看!

转载于:https://my.oschina.net/liululee/blog/3009255

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值