1 什么是oauth
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。
2 oauth2授权流程
- 在浏览器中,用户点击第三方应用按钮,由第三方应用发起请求,向平台发起授权请求。
- 平台在接收到第三方应用请求后,浏览器跳转用户登录界面,请求用户进行登录。
- 用户在平台登录界面输入用户名、密码进行登录
- 平台判断用户合法性,校验失败,在浏览器中提示错误原因
- 平台判断用户是否需要对该第三方应用进行授权。(不需要授权的情况有两种:a.平台信任该第三方应用,如公司内部应用,无需用户进行授权,默认给予用户数据。b.该用户之前已经给该应用授予过权限,并且仍在有效期内)
- 如需授权,平台跳转浏览器界面至授权界面,告知用户将授予哪个第三方哪些数据权限
- 用户授权后,将用户授权码回调给第三方url
- 第三方在获取用户授权码后,带着用户授权码访问平台鉴权接口,请求用户token
- 平台在收到第三方请求后,校验授权码真实性,并返回用户token
- 第三方使用用户token向平台请求用户接口
- 平台接口判断用户token真实性,并向第三方返回用户数据