1.3.1. 预推送授权请求

授权头部

授权方案:

BasicRFC 7617

凭证值:

{客户端标识}:{客户端秘密密钥}进行BASE64编码(RFC 4648#section-4)。

请求方式

POST

请求路径

/par

请求格式

application/x-www-form-urlencoded

请求数据

授权请求参数

名称

类型

约束

描述

response_type

字符串

必选

固定值:code

client_id

字符串

必选

您的客户端标识。

redirect_uri

URL

条件

授权成功后的重定向地址。

如果客户端注册了多于一个重定向地址,此参数必须传入;
如果传入此参数,参数值必须与注册值完全相同。

scope

字符串

可选

请求权限条目。

如果有多个条目,使用空格符(ASCII:0x20," ")进行连接多个条目;
如果没有传入此参数,系统将按默认条目请求用户授权。

state

字符串

可选

附加信息。

如果传入此参数,当资源所有者成功授权后,访问重定向地址时将携带此参数值。

本参数设计是用于防范跨站请求伪造(参考资料:MDN),建议您进行传入。
* 如果客户端需要将业务与授权请求进行关联,也可以将相应的映射字符串作为参数值进行传入。

code_challenge

字符串

条件

挑战码。由验证码经过演算法所得:
plain,此值为验证码原始值;
S256SM3,此值为经过使用URL安全字母表进行BASE64编码(RFC 4648#section-5)的杂凑演算值。

如果客户端类型为公开客户端,此参数必须传入。
本参数设计是用于防范授权码被攻击者拦截进而窃取到令牌(参考资料:RFC 7636#section-1),建议您进行传入。

code_challenge_method

字符串

可选

挑战码演算法。默认值为plain,即不进行演算。

本授权服务器支持:
plain——不进行演算;
S256——使用SHA-256安全杂凑演算法进行演算;
SM3——使用SM3密码杂凑算法进行演算。

响应代码

201 Created:

创建成功。

响应格式

application/json

响应数据

名称

类型

描述

request_uri

URL

请求URL。

expires_in

整数

剩余有效时间(秒)。

交互示例

备注

为方便阅读,仅展示关键信息字段,并对数据进行了仅用于显示目的格式化调整。

请求示例

POST /par HTTP/1.1
Host: oauth2.api.neusoft.edu.cn
Content-Type: application/x-www-form-urlencoded
Authorization: Basic ZHVtbXk6ZHVtbXk=

redirect_uri=https%3A%2F%2Fclient.example.net%2Foauth2%2Fcallback
&response_type=code
&state=dummy
&scope=core%3Auser%3Aid
&code_challenge=IHz0EFMvkqR97iRc6bEf9x9Xjr12PrO76kTr0EPQGPs
&code_challenge_method=SM3

响应示例

HTTP/1.1 201 Created
Content-Type: application/json

{
    "request_uri": "urn:ietf:params:oauth:request_uri:8bda7bd6-37a4-4eb9-9d81-62da8912e31e",
    "expires_in": 600
}