身份验证
Restorm 没有“身份验证类型”下拉菜单。它提供的是更通用的东西:身份验证请求, 一个完整的请求,其职责是为其他请求产生请求头。
好处在于:任何方案都可以被建模出来,包括任何下拉列表都没有预设的那些 —— 两步式交换、签名令牌、自研 API。代价在于:您需要把它写一次。
创建一条认证路由
Section titled “创建一条认证路由”在某个环境文件夹上右键 ▸ 添加 ▸ 身份验证请求。
首先像配置任何 HTTP 请求那样配置这次调用:方法、URL、请求头、正文。 然后打开它的配置标签页,那里承载着三项专属于身份验证的设置。

产生的请求头
Section titled “产生的请求头”这条路由会注入到每一个引用它的请求中的请求头清单。每一个值都是一个 针对身份验证请求的响应正文求值的表达式。
| 请求头 | 值 |
|---|---|
Authorization | {{token_type}} {{access_token}} |
过期时间(秒)
Section titled “过期时间(秒)”同样针对响应正文求值的一个表达式,给出以秒为单位的有效时长 —— 通常是
{{expires_in}}。留空时,令牌永不自行过期。
使用该路由的请求收到这些 HTTP 状态码时,会触发令牌续期并自动重试。
默认为 401 和 403。
两个说法,同一件事
Section titled “两个说法,同一件事”身份验证请求是您在树中创建的那个元素。认证路由是同一个元素从另一个请求的 角度、在把它挂上去的那个选择器中所呈现的样子。两个说法指的是同一个实体, 只是出现在界面的两个位置。
把一条路由挂到请求上
Section titled “把一条路由挂到请求上”在请求的标签页里,smartbar 中有一个 认证路由选择器,列出该环境文件夹下的所有路由。默认标签是无认证。
一旦挂上,每次发送都会注入产生的请求头,令牌会被缓存到过期为止,
而 401 会触发一次无感知的续期。
Bearer / OAuth 2 client credentials
Section titled “Bearer / OAuth 2 client credentials”请求:POST https://auth.exemple.test/oauth/token,正文为
x-www-form-urlencoded,包含 grant_type=client_credentials、
client_id={{clientId}}、client_secret={{clientSecret}}
(其中的密文使用密钥类型的值)。
产生的请求头:Authorization = {{token_type}} {{access_token}}。
过期时间:{{expires_in}}。
如果您已经有了凭据,那就完全不需要额外的请求:直接在请求上 (或在文件夹上)设置这个请求头:
Authorization = Basic {{base64Encode (append (append user ":") password)}}
API 密钥
Section titled “API 密钥”一个请求头或一个查询参数就够了:
X-API-Key = {{apiKey}},其中的密钥是一个密钥类型的变量。
通过两次调用获取的令牌
Section titled “通过两次调用获取的令牌”创建一个场景:第一次调用,提取中间码,
第二次调用,然后用设置变量把令牌写入运行变量。场景中后续的请求用
{{jeton}} 读取它。
导入时会发生什么
Section titled “导入时会发生什么”导入一份规范时,其中声明的安全方案会被翻译成预先接好线的请求头或参数, 并为您创建好一个对应的环境变量:
| 规范中的方案 | Restorm 生成的内容 |
|---|---|
apiKey(请求头或查询参数) | 一个以该方案命名的键值对,值为 {{<schema>}} |
http / basic | Authorization: Basic {{<schema>_credentials}} |
http / bearer、oauth2、openIdConnect | Authorization: Bearer {{<schema>_token}} |
您只需填好那个变量,或者在需要自动续期时把它替换为一条认证路由。
各协议的原生凭据
Section titled “各协议的原生凭据”有些协议并不经由 HTTP 请求头。它们的凭据是请求本身的字段:
| 协议 | 字段 |
|---|---|
| MQTT | username、password、客户端标识 |
| AMQP | username、password、vhost |
| Redis | password |
| Kafka | SASL 机制(plain、scram-sha-256、scram-sha-512)、用户标识、密码、TLS |
| STOMP | CONNECT 帧的 login 和 passcode 请求头 |
| gRPC | 调用的元数据 |
上述每一个密码都接受密钥类型的值。