交换代码 _ identityserver3 _ AppAuth 的无效客户端

invalid Client for exchange code _ identityserver3 _ AppAuth

我在我的 Swift 应用程序中使用 AppAuth 框架进行身份验证,我可以登录,但在登录并返回到我的应用程序后,我无法交换代码并得到无效错误客户.

我的客户端配置是:

var client = new Client
{
    ClientId = "IOS.Client",
    ClientName = "IOS Client",
    RedirectUris = { "com.mysite.accounts:/oauthredirect" },
    AllowedGrantTypes = GrantTypes.Code, //AuthorizationCode
    AllowedScopes = { "openid", "profile", "offline_access" },
};

我设置了 ClientSecret (SHA-256) 并且我的 ClientId 没问题,但是我收到错误消息 invalid client.

我检查了我的日志,有一个错误:secret validators could not validate secret

怎么了?

IS3 中的 IIRC 您必须设置客户端密码。我们不允许空的。

要么在客户端和服务器上设置密码,要么升级到 IS4 - IS3 已经有一段时间不推荐使用了。

使用 IdentityServer3 和 AppAuth 时,您不应在 ClientSecret 中使用特殊字符并设置授权 AuthorizationCodeWithProofKey

这个link很有用