[英]The OAuth response flow failed
我正在使用aws amplify和react-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.