爱奇艺扫码授权登录,爱奇艺登录二维码在哪

首页 > 大全 > 作者:YD1662022-12-19 00:44:10

学习目标
  1. 统一认证与授权——OAuth2.0开放授权平台
第1章 Oauth2.0简介

OAuth2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth1.0)。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。

上面这段话是百度百科上面给的解释,其实Oauth2.0说白了就是一种协议,而按照这种协议的话,我们能实现第三方授权操作;第三方授权其实我们也都用到过,就比如说现在我要去爱奇艺看电视,而有些资源是需要VIP的,那我首先得登录吧,然后登录之后再充个会员就可以看了。那登录的时候你会发现,可以选择微信等账号登录,这其实就是Oauth2.0的应用。

1.1 Oauth2.0中的角色

在正式讲解Oauth2.0的实现流程与实战之前,我们先来明确一下这个玩意中的几种角色。网上也有一大堆资料,但是可能很多同学可能分不太清这些角色到底是什么,OK,那我这里给大家做个解释。

还是按照上面那个登录爱奇艺的例子来看,我们要通过微信这种方式去登录爱奇艺,那这个时候实际上就是我们在点击微信登录按钮的时候,首先第三方客户端(也就是爱奇艺)要先重定向请求到微信的某个接口,请求认证,如果通过认证了,微信就会返回一个token给爱奇艺,然后爱奇艺再根据这个token去微信的另一个接口获取我的微信名啊、头像啊等等资源。这就是大体流程,后面会给出具体流程图。接下来我们根据这个流程来分析一下有哪些角色。

OK,明确了角色的概念之后,再来看看这个登录的具体流程。

1.2 Oauth2.0模式

OAuth2.0在第三方应用和服务提供商之间,设置一个授权层(authorization layer)。这样做的目的就是因为第三方应用它不能直接登录服务提供商的,就像爱奇艺不能直接登录微信一样,那这个时候如果爱奇艺想要用微信的资源的话,怎么办?就是在他们之间增加一个授权层,让用户给爱奇艺授权,这样,爱奇艺就能使用该用户的某一部分资源了。而Oauth2.0又分为四种授权方式,接下来每种模式都介绍一下。

1.2.1 授权码模式

Authorization Code

授权码模式(Authorization Code):功能是最完整的,流程也是最严密的,国内各大服务提供商(微信、微博、淘宝、百度)都是使用此授权模式进行授权。该授权模式可以确定是用户进行授权的,并且令牌是认证服务器发放到第三方应用服务器上,而不是浏览器上。该模式的认证流程如下:

  1. 用户进入爱奇艺应用,想看特殊电影,那得登录啊。
  2. 点击微信登录,就会跳转到微信的登录页面,这是爱奇艺重定向到微信的认证服务端
  3. 返回一个授权页面给用户
  4. 用户微信扫码或者直接输入账号密码进行授权
  5. 微信认证服务器产生一个授权码返回给爱奇艺
  6. 爱奇艺拿到这个授权码然后再发送请求到微信认证服务器请求一个token
  7. 微信认证服务器认证成功返回给爱奇艺一个token
  8. 爱奇艺拿着这个token请求微信的资源服务器获取微信名和头像
  9. 微信资源服务器校验token成功后响应这些信息给爱奇艺
  10. 爱奇艺登录成功
  11. 返回特殊电影给用户

爱奇艺扫码授权登录,爱奇艺登录二维码在哪(1)

1.2.2 简化模式

简化模式(Implicit):和授权码模式不同的是,令牌发放给浏览器,OAuth2客户端运行在浏览器中。而不是发放该第三方应用的服务器。

爱奇艺扫码授权登录,爱奇艺登录二维码在哪(2)

1.2.3 密码模式

密码模式(resource owner password credentials):将用户和密码传过去,直接获取accesstokne,用户同意授权动作是在第三方应用上完成,而不是在认证服务器。第三方应用申请令牌时,直接带用户名和密码去向认证服务器申请令牌。这种方式认证服务器无法断定用户是否真的授权,用户和密码可能是第三方应用盗取过来的。

流程如下:

  1. 用户向客户端直接提供认证服务器想要的用户名和密码。
  2. 客户端将用户名和密码发给认证服务器,向认证服务器请求令牌
  3. 认证服务器确认后,向客户端提供访问令牌
  4. 后面的流程跟上面的类似

爱奇艺扫码授权登录,爱奇艺登录二维码在哪(3)

1.2.4 客户端模式

客户端模式(client credentials):这种模式实际上不是让用户授权去登录微信了,而是让客户端也就是爱奇艺自己去登录微信,拿相应的资源。这种模式使用较少,当一个第三方应用自己本身需要获取资源,而不是获取用户资源时,客户端模式十分有用。

流程如下:

  1. 客户端向认证服务器进行身份认证,并要求一个访问令牌
  2. 认证服务器确认后,向客户端提供访问令牌

爱奇艺扫码授权登录,爱奇艺登录二维码在哪(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.