React Native InAppBrowser认知授权问题



目前正在寻找修复一个恼人的'功能'与以下软件包

"react": "17.0.2",
"react-native": "0.65.1",
"react-native-inappbrowser-reborn": "3.6.3",
"@react-navigation/drawer": "6.1.4",
"@react-navigation/native": "6.0.2",
"@react-navigation/native-stack": "6.1.0",
"react-native-screens": "3.6.0",
"aws-amplify": "4.2.10",

应用程序向用户提供一个登录谷歌的按钮,并使用在验证选项中为urlOpener配置的Amplify Auth,如下所示

urlOpener: async (url, redirectSignIn) => {
try {
await InAppBrowser.isAvailable();
console.log(`urlOpener: calling url: ${url}, redirectsignIn: ${redirectSignIn}`)
InAppBrowser.openAuth(url, redirectSignIn, {
dismissButtonStyle: 'cancel',
showTitle: false,
enableUrlBarHiding: true,
enableDefaultShare: false,
ephemeralWebSession: false,
forceCloseOnRedirection: true
}).then((response) => {
console.log('urlOpener: response: ', JSON.stringify(response));
if (response.type === 'cancel') {
console.log('urlOpener: cancel:');
AuthStore.setIsFedratedSignIn(false);
} else if (response.type === 'success' && response.url) {
console.log('urlOpener: success: url: ', response.url);
Linking.openURL(response.url);
}
})
} catch (err) {
console.log('urlOpener: error: ', JSON.stringify(err));
}
},

Cognito都很好,我们可以使用托管UI来证明登录过程与谷歌是工作的,正确的重定向url返回

用户进行了身份验证,验证页面就在那里,不去任何地方。从本质上讲,它看起来就像验证过程永远不会结束,没有重定向被返回或传递回应用程序。

用户关闭认证进程并返回到app用户再次点击google,验证过程完成,没有任何延迟或登录要求,重定向返回,用户登录,我们看到适当的日志记录发生。

第一次和第二次尝试之间的唯一区别是我们在android日志中发现的。

只有在第二次尝试时,我们才看到下面的

I ActivityTaskManager: START u0 {act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=cortexmonitorapp://signin?code=b3bbf90f-5b8c-4b94-97c0-a2a9bcaedbc1&state=hF8xky8sYKMaTSA06j1X2IsKhaqDtJ7r flg=0x14000000 cmp=com.cortexmonitoring/.MainActivity (has extras)} from uid 10116

试图找出为什么它只在第二次尝试时通过,实际上是当用户已经从第一次尝试中登录时

是否确认不返回重定向?我们对此表示怀疑。它被测试了又测试,并且总是返回是InAppBrowser不感知它吗?把它传递下去?我们知道应用程序中的链接是好的,因为当Android将意图传递给应用程序时,我们看到它在应用程序中起作用,因此我们可以告诉方案是正确的,并且链接正在工作。

由于某些原因,第一次尝试从未生成意图。

有人见过这个并解决了吗??谁有其他的方法或包,工作一致??

提前感谢现在完全卡住了

所以这个问题只在Android Sim上很明显。在物理设备上,

经过一些测试,我只能把它归结为Chrome的状态,当手机基本上是出厂默认的。

Chrome在打开验证标签页之前询问一些关于同步和T&C的问题。和身份验证失败。

如果Chrome已被使用,并回答了问题,那么auth工作,这就是为什么第二次尝试似乎总是工作

最新更新