什么是oauth 2.0,在实际场景中解决了什么问题?
oauth 2.0是开放授权协议,核心思想是授权第三方应用访问用户的受保护资源,并且是以令牌的方式进行访问而不是用户名和密码,保证了安全性;例如第三方应用接入微信登录,就是利用了oauth 2.0来实现的。如果没有接入微信登录,那用户使用多个应用系统都需要分别注册账号,用户体验不好,而接入微信登录之后,对于用户而言,其实就是使用一个微信账号登录多个应用系统。底层的实现原理是:当第三方应用想要使用微信登录时,目的就是获取到用户的微信账号信息,例如用户名、头像、昵称等(用户的微信账号信息其实也是微信开放平台上的一个API),将这些信息作为自己平台的账号信息,自动为用户注册平台账号,用户每次只需要通过微信进行登录即可;但是用户不会直接把微信账号密码给第三方应用,这样做比较危险,容易越权;而是给第三方应用进行授权,利用令牌代替账号密码去访问用户的微信账号信息。整个流程就是利用了oauth 2.0这个授权协议来实现的。
注意:当第三方应用成功访问到微信开放平台上获取用户微信信息的API时,即已经获取了用户的微信账号信息,接下来的操作不属于oauth 2.0流程中的,属于第三方应用本身自己的处理,例如先在自己的系统中看看是否已存在这个用户,不存在自动注册,存在则完成认证流程,例如生成session或者token返回给浏览器,浏览器后续携带sessionId或者token访问第三方应用自己的资源时,第三方应用后台进行校验,校验成功返回对应的资源。这个流程已经没有微信开放平台参与了,属于是第三方应用自己的流程。
再举一个小兔打单软件的例子,假如小明在京东上面开了一个店铺,日常运营中需要将订单打印出来以便给用户发货,以前是手工操作,后来发现有个叫“小兔”的第三方软件,可以帮助小明打印京东上的订单。小兔软件要进行打单操作时,就需要访问小明在京东店铺上的订单;京东商城提供了开放平台,小兔通过京东商家开放平台的 API 就能访问到用户的订单数据。具体流程是,小兔软件点击打单操作时,相当于要请求京东开放平台获取用户订单数据的API,这需要用户进行授权,那么小兔软件会引导小明去到京东开放平台进行认证,然后授权小兔软件访问这个API,小明

OAuth2.0 是一种授权协议,用于第三方应用安全地访问用户的受保护资源,如微信登录和小兔打单软件接入京东订单数据。它通过令牌代替用户名和密码,确保安全性。单点登录(SSO)允许用户在一个系统登录后,无需再次登录即可访问其他系统。OAuth2.0 可用于实现 SSO,例如用户在 A 系统登录后,无须登录 B 系统即可访问,通过令牌传递实现身份验证。在企业环境中,通常会采用门户系统或特定子系统作为认证中心,实现多个子系统的单点登录需求。
最低0.47元/天 解锁文章
1611

被折叠的 条评论
为什么被折叠?



