簡體   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