OpenIdDict - 设备代码流程,如何更改 user_code 长度

问题描述 投票:0回答:1

我正在使用 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”?

oauth-2.0 openiddict
1个回答
0
投票

我还没有找到任何其他允许自定义“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}");

注意:使用较短的长度会减少生成的用户代码的熵并增加出现冲突的机会。

© www.soinside.com 2019 - 2024. All rights reserved.