Oauth2详解-介绍(一)OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0 。
第三方应用授权登录:在APP或者网页接入一些第三方应用时,时长会需要用户登录另一个合作平台,比如QQ,微博,微信的授权登录 。
原生app授权:app登录请求后台接口,为了安全认证,所有请求都带token信息,如果登录验证、请求后台数据 。
前后端分离单页面应用(spa):前后端分离框架,前端请求后台数据,需要进行oauth2安全认证,比如使用vue、react后者h5开发的app 。
OAuth 2.0的运行流程如下图,摘自RFC 6749 。
授权码模式(authorization code)是功能最完整、流程最严密的授权模式 。
(1)用户访问客户端,后者将前者导向认证服务器,假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码 。
(2)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌:GET /oauth/token?response_type=codeclient_id=testredirect_uri=重定向页面链接 。请求成功返回code授权码,一般有效时间是10分钟 。
(3)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token) 。POST /oauth/token?response_type=authorization_codecode=SplxlOBeZQQYbYS6WxSbIAredirect_uri=重定向页面链接 。
简化模式(implicit grant type)不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了"授权码"这个步骤,因此得名 。所有步骤在浏览器中完成,令牌对访问者是可见的,且客户端不需要认证 。
流程步骤:
请求URL:
密码模式(Resource Owner Password Credentials Grant)中,用户向客户端提供自己的用户名和密码 。客户端使用这些信息,向"服务商提供商"索要授权 。在这种模式中,用户必须把自己的密码给客户端,但是客户端不得储存密码 。这通常用在用户对客户端高度信任的情况下 。一般不支持refresh token 。
步骤说明:
(A)用户向客户端提供用户名和密码 。
(B)客户端将用户名和密码发给认证服务器,向后者请求令牌 。
(C)认证服务器确认无误后,向客户端提供访问令牌 。
article class="hentry"
指客户端以自己的名义,而不是以用户的名义,向"服务提供商"进行认证 。严格地说,客户端模式并不属于OAuth框架所要解决的问题 。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求"服务提供商"提供服务,其实不存在授权问题 。
它的步骤如下:
(A)客户端向认证服务器进行身份认证,并要求一个访问令牌 。
(B)认证服务器确认无误后,向客户端提供访问令牌 。
A步骤中,客户端发出的HTTP请求,包含以下参数:
文章插图
oauth地址支持正则吗【oauth2 oauth】支持的 。
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准 。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的 。
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源 。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息,即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的 。
“oauth”的中文意思oauth本质一种开放的协议,对象是第三方可以使用OAUTH认证服务
简介
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准 。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的 。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的 。互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准 。
在官方网站的首页,可以看到下面这段简介:
An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications.