1

我正在尝试实现 IdentityServer4。所有客户端都将是 javascript 应用程序(在 react js 中)。我的问题是:

1.- 我们将拥有我们的自定义用户数据库,因此我正在尝试使用 Aspnet 身份实现 de IS4,例如 de 6th example。但是,由于我的客户端是基于 Javascript 的,我必须使用隐式流,并且在示例中(就像使用 MVC 客户端完成的那样)是在考虑 HybridAndClientCredentials 的情况下制作的。此外,MVC 登录应用程序似乎不包括同意步骤。我结合 AspnetIdentity 示例实现了 javascript 客户端示例。起初它给了我错误:IdentityServer4.Validation.ScopeValidator: Error: Invalid scope: 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

非常感谢您的阅读。

4

0 回答 0