如何将Expo AppAuth模块与IdentityServer4结合使用

时间:2019-05-18 05:09:08

标签: react-native identityserver4 expo appauth

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

这是我在Identityserver上的客户端

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"
}

1 个答案:

答案 0 :(得分:1)

您应指定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`;
}