如何在 IdentityServer4 中使用 Expo AppAuth 模块

How to use Expo AppAuth module with IdentityServer4

我正在尝试使用 Expo AppAuth 模块在 React Native 中使用 IdentityServer4 进行身份验证。似乎无法正确设置 redirectUri。当我重定向到 identityServer 时出现“无效的重定向 uri”错误。

这是我在身份服务器上的客户端

return new List<Client>
            {
                new Client
                {
                    ClientName = "client",
                    ClientId = "client",
                    RequirePkce = true,
                    AllowedGrantTypes = GrantTypes.Code,
                    RequireClientSecret = false,
                    RequireConsent = true,
                    RedirectUris =
                    {
                        "host.exp.Exponent" //Is this correct
                    },
                    AllowOfflineAccess = true,
                    RefreshTokenUsage = TokenUsage.ReUse,
                    AllowedScopes = { "openid", "profile"},

                }
            };

我的 AppAuth 配置设置是

const config = {
    issuer: 'http://localhost:3000',
    clientId: 'client',
    scopes: ['profile', 'openid'],
    redirectUri: "host.exp.Exponent"
}

您应该指定 redirectUri 作为地址值。

AppAuth 定义:

async function _executeAsync(props: OAuthProps): Promise<TokenResponse> {
  if (!props.redirectUrl) {
    props.redirectUrl = getDefaultOAuthRedirect();
  }
  assertValidProps(props);
  return await ExpoAppAuth.executeAsync(props);
}

export function getDefaultOAuthRedirect(): string {
  return `${ExpoAppAuth.OAuthRedirect}:/oauthredirect`;
}