问题描述
很快,这样的OIDC JWT有效载荷有效吗?
{
"sub" : "alice","email" : ["[email protected]","[email protected]"],...
}
在阅读正式的RFC时,我只能发现键(sub
,email
等)必须是唯一的,但关于值则一无所有。
解决方法
email
声明必须为字符串。因此,根据OpenID Connect Core 1.0 spec(格式是我的),数组不是有效值:
电子邮件
字符串最终用户的首选电子邮件地址。它的值必须符合RFC 5322 addr-spec语法。 RP一定不要依赖此值 是唯一的,如Section 5.7中所述。
在RFC 5322中, addr-spec 语法定义如下:
addr-spec是一个特定的Internet标识符,其中包含本地 解释字符串,后跟符号字符(
@
,ASCII 值64),然后是Internet网域。 [...]addr-spec = local-part "@" domain local-part = dot-atom / quoted-string / obs-local-part domain = dot-atom / domain-literal / obs-domain domain-literal = [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS] dtext = %d33-90 / ; Printable US-ASCII %d94-126 / ; characters not including obs-dtext ; "[","]",or "\" ```