我正在使用 OpenIdDict(版本 5.0.1)来实现 OAuth“设备代码流”。
/device 端点正在返回此数据:
{
"device_code": "lyJe_PgWGfOblSS6PhX67hF_ebKjTN1UZeMO3KWtJt0",
"user_code": "8539-7540-1784",
"verification_uri": "..."
}
“user_code”有12位数字,相当长,考虑到必须由用户手动插入。
我尝试自定义 /device 端点,但这似乎不受 OpenIdDict 支持,因为例如 /authorize 端点可以使用 EnableAuthorizationEndpointPassthrough()
options
.AllowAuthorizationCodeFlow()
.AllowDeviceCodeFlow();
options.UseAspNetCore()
.EnableAuthorizationEndpointPassthrough();
我还没有找到任何其他允许自定义“user_code”格式的选项。
是否可以生成更短的user_code?例如:“6745-3454”?
我还没有找到任何其他允许自定义“user_code”格式的选项。 是否可以生成更短的 user_code?例如:“6745-3454”?
OpenIddict 5.4.0引入了自定义用户代码字符集、长度和显示格式的功能:
options.SetUserCodeCharset(
[
"B", "C", "D", "F", "G", "H", "J", "K", "L", "M",
"N", "P", "Q", "R", "S", "T", "V", "W", "X", "Z"
]);
options.SetUserCodeLength(7);
options.SetUserCodeDisplayFormat("{0}{1} - {2}{3}{4} - {5}{6}");
注意:使用较短的长度会减少生成的用户代码的熵并增加出现冲突的机会。