🍁 作者:知识浅谈,CSDN签约讲师,华为云云享专家,阿里云社区星级博主
💒 公众号:知识浅谈
📌 擅长领域:全栈工程师、爬虫、ACM算法
🔥 联系方式vx:zsqtcc
⛳⛳⛳前言:
- 关于授权登录包含三个端,资源拥有者(用户),资源服务器(存储用户资源的网站),第三方网站。
- OAuth就是用来分离用户和第三方网站的一个层,用户同意之后,资源服务器可以想第三方网站颁发token,第三方网站通过这个token可以访问资源服务器对应这个用户的信息。
🤞OAuth2.0授权的四种方式🤞
前提:不管哪种方式,都需要第三方网站提前到资源服务器注册身份,获取对应的appid和secret,为了防止token被乱用。
🎈授权码(authorization-code)
- 首先第三方网站携带appid和secrect和redirect_url到资源服务器取获取登陆二维码
- 用户扫码之后把确认通知传递给资源服务器
- 资源服务器按照第一步的redirect_url返回authorization-code和登陆成功状态
- 第三方获取authorization-code之后再携带自己之前注册的appid和secrect和authorization-code去资源服务器获取token
- 然后第三方网站根据token去资源服务器获取到用户信息之后就可以惊醒后续操作了。
🎈隐藏式(implicit)
省去了授权码获取的步骤,直接获取的token,适用于没有后端的网站(不安全)
- 第三方网站携带appid和secrect和redirect_url到资源服务器取获取登陆二维码
- 用户扫码之后把确认通知传递给资源服务器
- 资源服务器按照第一步的redirect_url返回token和登陆成功状态
- 然后第三方网站根据token去资源服务器获取用户信息就可以做后续的操作了
🎈密码式(password)
- 第三方网站携带username和password到资源服务器取获取token
- 然后第三方网站根据token去资源服务器获取用户信息就可以做后续的操作了
🎈客户端凭证(client credentials)
适用于没有前端的命令行应用,即在命令行下请求令牌,这种token不是针对用户的,即有可能多个用户共享同一个令牌。
- 通过在命令行携带appid和secrect到资源服务器取token
- 然后命令行根据token去资源服务器获取用户信息就可以做后续的操作了
🍚总结
掌握了这四种授权登录的思想,以后再做授权登录的时候就简单多了。