【问题标题】:How to generate code manually in authorization code flow in IdentityServer4?如何在 IdentityServer4 的授权代码流中手动生成代码?
【发布时间】:2021-09-08 16:08:40
【问题描述】:

所以基本上我在 Angular 中有一个客户端应用程序,它目前使用 OIDC 与 IdentityServer4 通信。未登录的用户被重定向到他们输入用户名/密码的 IdentityServer4 视图,并使用令牌将他们重定向到我的应用程序。这很好用。 然而,除了授权之外的所有客户端应用程序都使用另一个 API,我们称之为 MainAPI。 现在我的客户(人)想要摆脱用户/密码并将其交换为应该由 MainAPI 处理的自定义令牌登录。但是,他不希望我剥离身份服务器的逻辑,并希望 Angular 应用程序继续使用 OIDC,但在没有 IdentityServer4 视图的情况下处理所有事情。

所以我需要的是,一旦我在 MainAPI 上成功验证了自定义令牌,调用 IdentityServer4 以生成令牌/授权代码,就像我登录一样。 如何手动生成授权码?获得该代码后,我应该可以调用:

{
    Address = IdentityServerPipeline.TokenEndpoint,

    ClientId = "client",
    ClientSecret = "secret",

    Code = code, => how to get code
    RedirectUri = "https://app.com/callback",

    // optional PKCE parameter
    CodeVerifier = "xyz"
});```

【问题讨论】:

    标签: c# angular identityserver4 openid-connect


    【解决方案1】:

    您无法手动生成授权码,因为它是由 IdentityServer 生成并提供给您(作为客户端)的。

    这只是您收到的代码,然后您可以使用它(通过反向通道)检索最终令牌。

    因此,尝试创建自己的代码是没有意义的。

    【讨论】:

    • 是的,我知道。我想知道是否有任何方法可以在不使用反向通道的情况下获得它。不再重要了,我说服客户使用 IS4,因为它本来就是要使用的。干杯。
    猜你喜欢
    • 2018-10-03
    • 2020-05-14
    • 2021-05-08
    • 2020-11-09
    • 2014-11-04
    • 2017-04-20
    • 2016-10-15
    • 1970-01-01
    • 2017-06-28
    相关资源
    最近更新 更多