OAuth2学习笔记
来源:互联网 发布:三国志11 mod 知乎 编辑:程序博客网 时间:2024/06/06 14:05
近期学习了OAuth2相关知识,在此与各位分享一下。
一些资料
https://www.oauth.com/ 一个OAuth 2学习网站
https://github.com/RangelReale/osin 一个用于搭建OAuth 2 server的go package
Role
- Client:可以理解成一个app,需要访问用户资源完成业务逻辑。
- Authorization server:授权服务器。主要用来向clients颁发access token并校验token有效性。
- Resource server:资源服务器。为Client提供资源访问服务,需要访问authorization server验证access token。
- Resource owner:可以认为是user,资源的拥有者。与authorization server交互完成身份认证和确认授权。
Access token交换
Authorization code授权
当用户访问一个第三方app时,该app需要有权限访问用户所拥有的资源。这时第三方app需要将用户重定向至authorization server。此时authorization server通常会要求用户登录来认证身份,再让用户选择是否向该app授权。
用户同意后,authorization server会生成一个临时的authorization code并将用户重定向到第三方app,code会在请求参数中发给第三方app。此时app使用code请求authorization server获取access token。并使用token访问用户资源。
Password授权
Password授权可以通过用户名和密码来交换access token。与authorization code授权方式不同,Password授权只需要请求一次authorization server来获取token。
由于这种方式会导致app知道用户的密码,因此此种方式只能用于官方app。如web portal服务和mobile portal服务都可以通过Password方式让用户登录来获取access token。
Client Credentials授权
当app只想访问自己的资源时,可以使用Client Credentials授权。该方式通过client id和secret请求一次authorization server来获取token。
示例
通过三种授权方式,我们可以搭建一个的auth server,统一向官方和第三方app提供授权服务。
我实现了一个demo,代码托管于https://github.com/FlyingShit-XinHuang/auth-server
- [OAuth]OAuth2学习笔记
- OAuth2.0 学习笔记
- OAuth2学习笔记
- OAuth2.0学习笔记
- 学习 OAuth2.0 笔记( 一 )
- 【OAuth2.0学习笔记一】原理介绍
- OAuth2笔记
- 【学无止境】基于ThinkPHP的OAuth2.0实现 ------ OAuth2.0个人学习笔记 One
- 【学无止境】 基于ThinkPHP的OAuth2.0实现 ----OAuth2.0 个人学习笔记 Two
- 一大坨GoogleAPI的学习笔记之一(oAuth2.0)
- OAuth2学习笔记(1)——简介
- OAuth2学习笔记(2)——角色
- OAuth2.0协议学习
- OAuth2.0学习
- 关于spring-oauth2的笔记
- 一大坨GoogleAPI的学习笔记之二(oAuth2.0总结)
- 一大坨GoogleAPI的学习笔记之三(基于oAuth2.0的domain-wide authentication)
- 新浪OAuth2学习分享总结
- offer44
- dwz 的td添加table(class="list")
- 运营商数据分析api
- 【操作系统】处理器管理
- CPU调度算法总结
- OAuth2学习笔记
- 分布式网络爬虫实例——获取静态数据和动态数据
- BZOJ4553: [Tjoi2016&Heoi2016]序列
- opengl stencil buffer使用
- matlab中syms
- IDEA 的maven不见了。
- git 如何添加空目录
- Android drawableleft drawableTop 设置图片的大小
- Android二维码扫描:基于barcodescanner