繁体   English   中英

OAuth响应流程失败

[英]The OAuth response flow failed

我正在使用aws amplifyreact-native-inappbrowser 我启用了 Google SSO 身份验证并且它工作正常,但是当我添加 GitHub 身份验证时它没有按预期工作。 我使用Hub.listen('auth', async (data) => {...}添加了一个侦听器,我的urlOpener中的awsConfig如下所示:

onst urlOpener = async (url, redirectUrl, settings) => {
  try {
    if (await InAppBrowser.isAvailable()) {
      const { type, url: newUrl } = await InAppBrowser.openAuth(
        url,
        redirectUrl,
        { ...inAppBrowserSettings, ...settings },
      );
      if (type === 'success') {
        Linking.openURL(newUrl);
      }
    } else {
      Linking.openURL(url);
    }
  } catch (error) {
    Alert.alert(error.message);
  }
};

Hub.listener看起来像这样:

 useEffect(() => {
    const unsubscribe = Hub.listen('auth', async (data) => {
      const { payload } = data;
      const user = payload.data;
      switch (payload.event) {
        case AuthEnum.SIGN_IN:
          handleSignIn(user);
          break;
        case AuthEnum.SIGN_OUT:
          handleSignOut();
          break;
        case AuthEnum.SIGN_IN_FAILURE:
          handleSignInFailure();
          break;
      }

    });
   return () => unsubscribe();
}, []);
    

当我尝试使用 GitHub 进行身份验证时,GitHub API 返回正确的令牌,但 aws Hub捕获SIGN_IN_FAILURE并且data如下所示:

{
  "channel": "auth",
  "payload": {
    "event": "signIn_failure",
    "data": {},
    "message": "The OAuth response flow failed"
  },
  "source": "Auth",
  "patternInfo": []
}

我不确定为什么会这样。 解决方案可能是在 GitHub 身份验证的情况下删除侦听器,但我不确定该怎么做,因为InAppBrowser.openAuth()用于 Google SSO 和 GitHub 身份验证。

如果我提供的信息不够,请务必告诉我。 任何建议/帮助都会很棒!

我认为 AWS Amplify 不支持 github oauth。我相信支持的是:Google、Apple、Facebook & Amazon

支持的社交登录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM