Federated Google Sign in Issue(AWS Amplify and React Native)

kcrjzv8t  于 6个月前  发布在  React
关注(0)|答案(1)|浏览(78)

我用react native和aws amplify cognito设置了google auth。
登录失败ValidationException:检测到1验证错误:“logins”处的值“{xxx.amazonaws.com/xxx}”未能满足约束:Map值必须满足约束:[成员的长度必须小于或等于50000,成员的长度必须大于或等于1]
在第二次登录(按下按钮),它登录良好。
为什么不先登录工作,为什么会收到此消息?

au9on6nz

au9on6nz1#

默认情况下,Amplify将在Safari/Chrome中打开Cognito Hosted UI,但您可以通过提供自定义URL打开器来覆盖该行为。
为了解决这个问题,使用InAppBrowser将给定的URL转换为所需的形式,如Ashish-Nanda评论中的ISSUE所建议的。

Amplify.configure({
    ...config, oauth: {
        ...config.oauth,
        urlOpener: async function urlOpener(url, redirectUrl) {
            await InAppBrowser.isAvailable();
            const { type, url: newUrl } = await InAppBrowser.openAuth(url, redirectUrl, {
                showTitle: false,
                enableUrlBarHiding: true,
                enableDefaultShare: false,
                ephemeralWebSession: false,
            });

            // split according to ur received newURL
            const splitUrl = `myapp://?${newUrl.split("#_=_")[0].split("?")[1] || ''}`;
            if (type === 'success') {
                Linking.openURL(splitUrl);
            }
        }

    }
})

字符串

相关问题