This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.20.7.3. 授权标头
请求在 authorization 标头中包含 app_id 和 app_key。如果末尾至少输出了一个或两个值,您可以分配 app_key。
如果末尾输出了一两个或两个,此处的解决方法将分配 app_key。
authorization 标头使用授权类型指定值,其值编码为 Base64。这意味着,您可以通过空格字符来划分值,取第二个输出,然后使用冒号(:)作为分隔符再次分割它。例如,如果您使用这种格式 app_id:app_key,则标头类似以下示例 credential :
aladdin:opensesame: Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
aladdin:opensesame: Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
您必须使用小写标头字段名称,如下例所示:
以上用例示例查看 authorization 标头:
-
它接受字符串值并通过空格分割,检查它是否至少生成两个
credential类型和credential本身,然后丢弃credential类型。 然后,它会解码包含所需数据的第二个值,并使用冒号(:)字符进行拆分,使其具有一个包含
app_id的操作堆栈,然后解码app_key(若存在)。-
如果授权标头中不存在
app_key,则将检查其特定源,例如本例中带有键app_key的标头。
-
如果授权标头中不存在
-
要向
credentials添加额外条件,允许Basic授权,其中app_id是aladdin或admin,或者任何app_id长度至少为 8 个字符。 app_key必须包含一个值,并且至少具有 64 个字符,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
选取
authorization标头值后,您可以通过淘汰堆栈来获取Basiccredential类型,使类型放置在顶部。 -
在其上运行通配匹配。验证凭据并且凭据被解码和分割后,您将获得堆栈底部的
app_id,还可能获得顶部的app_key。 运行
测试:如果堆栈中有两个值,表示已获取app_key。-
确保字符串长度介于 1 到 63 之间,包括
app_id和app_key。如果密钥的长度为零,则将其丢弃,并像不存在密钥一样继续。如果只有一个app_id且没有app_key,则缺少的其他分支表示测试和评估成功。
-
确保字符串长度介于 1 到 63 之间,包括
assert,最后一个操作表示它使它进入堆栈没有副作用。然后您可以修改堆栈:
颠倒堆栈,使
app_id位于顶部。-
无论是否存在
app_key,取代堆栈可确保app_id处于顶级。
-
无论是否存在
使用
and在测试期间保留堆栈的内容。然后使用以下可能性之一:
-
确保
app_id的字符串长度至少为 8。 -
确保
app_id与aladdin或admin匹配。
-
确保