导火索:OAuth 2.0 四种授权登录方式必读
🍁 作者:知识浅谈,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 去资源服务器获取用户信息就可以做后续的操作了
🍚总结
掌握了这四种授权登录的思想,以后再做授权登录的时候就简单多了。
版权声明: 本文为 InfoQ 作者【知识浅谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/bb7d27393411da291e917dc60】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论