OAuth 2 详解(三):Resource Owner Password Credentials Grant
这大概是最简单的一种授权方式之一了,那就是用户名密码授权。通常来说,是不建议使用,但是有一种情况下,非常适合:那就是 自家App对接的时候,这样就可以复用已有的授权逻辑。这种模式,通常只适合用在可信度非常高的App里,一般也就是自家的App。
流程
+----------+
| Resource |
| Owner |
| |
+----------+
v
| Resource Owner
(A) Password Credentials
|
v
+---------+ +---------------+
| |>--(B)---- Resource Owner ------->| |
| | Password Credentials | Authorization |
| Client | | Server |
| |<--(C)---- Access Token ---------<| |
| | (w/ Optional Refresh Token) | |
+---------+ +---------------+
步骤如下:
- 用户点击登录,应用弹出输入用户名密码界面
- 应用带上用户名密码请求Authorization Server,还要携带
client_id
,client_secret
,scope
,grant_type
设置为password
- Authorization Server 校验用户名密码
- 校验通过,下发access token,以及
refresh_token
,expires_in
等字段 - App带着access token请求接口
- 接口确认access token有效,返回对应数据
这一种授权模式比较简单,如果是对于第三方授权,那么是不建议使用这种模式的,对于自家App来说,使用这种方式可以复用已有逻辑。
refs:
- https://www.rfc-editor.org/rfc/rfc6749#section-4.3
- https://auth0.com/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow
- https://auth0.com/docs/get-started/authentication-and-authorization-flow/call-your-api-using-resource-owner-password-flow#prerequisites
- https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc
更多文章
本站热门
- socks5 协议详解
- zerotier简明教程
- 搞定面试中的系统设计题
- frp 源码阅读与分析(一):流程和概念
- 用peewee代替SQLAlchemy
- Golang(Go语言)中实现典型的fork调用
- DNSCrypt简明教程
- 一个Gunicorn worker数量引发的血案
- Golang validator使用教程
- Docker组件介绍(二):shim, docker-init和docker-proxy
- Docker组件介绍(一):runc和containerd
- 使用Go语言实现一个异步任务框架
- 协程(coroutine)简介 - 什么是协程?
- SQLAlchemy简明教程
- Go Module 简明教程