使用 IdentityServer4 作为 gitlab 的 OAuth 2.0 provider,请求的 scope 中包含 email,IdentityServer4 报错 "Scope email not found in store",请问如何解决?
{
"response_type":"code",
"scope":"openid profile email"
}
通过源码 ResourceExtensions.cs#L83 找到了原因
public static ApiScope FindApiScope(this Resources resources, string name)
{
var q = from scope in resources.ApiScopes
where scope.Name == name
select scope;
return q.FirstOrDefault();
}
解决方法很简单,只需在 ApiScopes
表中添加 DisplayName 与 Name 为 email
的记录
这个错误是在 DefaultResourceValidator.cs#L139 中记录的
– dudu 2年前