我正在尝试实现IdentityServer4。所有客户端都将是javascript app(在反应中)。我的问题是:
1.-我们将拥有自定义用户数据库,因此我尝试使用Aspnet身份实现de IS4,如第6个示例。但是,由于我的客户端是基于Javascript的,我必须使用de implicit flow,并且在示例中(因为它是使用MVC客户端完成的)是在考虑HybridAndClientCredentials的情况下完成的。此外,MVC登录应用程序似乎不包括同意步骤。我结合AspnetIdentity示例实现了javascript客户端示例。起初它给了我错误:IdentityServer4.Validation.ScopeValidator:错误:无效范围:api2,(api2是客户端将调用的Api),但api2包含在客户端定义中:
new Client
{
ClientId = "js2",
ClientName = "JavaScript Client 2",
AllowedGrantTypes = GrantTypes.Implicit,
AllowAccessTokensViaBrowser = true,
RequireConsent = true,
RedirectUris = { "http://jstwo:5004/callback.html" },
PostLogoutRedirectUris = { "http://jstwo:5004/index.html" },
AllowedCorsOrigins = { "http://jstwo:5004" },
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
"api2"
},
AllowOfflineAccess = true
}
为了尝试继续,我从客户端调用中删除了该范围,并且它有效。我登录但是由于同意步骤丢失,客户端崩溃了。
所以,我觉得我有点迷失在这里。我应该找到一种方法来跳过conset步骤吗? (这会很好,因为我们不希望这一步,所有用户都是内部的。)
2.-我们还需要在数据库中保留所有结构,例如样本8_EntityFrameworkStorage。我可以将这种方式与AspIdentity结合使用吗?
参考的样本:https://github.com/IdentityServer/IdentityServer4.Samples
非常感谢您阅读。