reactjs Supabase Google auth与Capacitor(React)for iOS的集成

vltsax25  于 2023-04-29  发布在  React
关注(0)|答案(1)|浏览(116)

我正试图将Supabase Google Auth集成到我用电容器构建的混合应用程序中。
它在Web上工作得很好,但我不能让它在iOS上工作。
这方面也没有任何文档。

我已经尝试改变重定向网址以及

supabase?.auth.signInWithOAuth({
                provider: "google",
                options: Capacitor.isNativePlatform()
                ? {
                    redirectTo: "capacitor://localhost",
                }
                : {},
});

这将我带回到应用程序,但不登录

xoefb8l8

xoefb8l81#

与电容器,你将不得不设置一个会话手动为移动的为ex重定向到一个新的页面,将处理这一点

myapp://confirmation

那么在新的一页里

useEffect(() => {
    const hash = window.location.hash;
    const parts = hash.replace('#', '').split('&');
    for (const item of parts) {
        var [key, value] = item.split('=');
        if (key === 'access_token') setAccess(value);
        if (key === 'refresh_token') setRefresh(value);
    }
}, []);
useEffect(() => {
    if (!access || !refresh) return;
    const setSessionfunc = async (access_token: string, refresh_token: string) => {
        await supabase.auth.setSession({ access_token, refresh_token });
        router.push('/');
    };
    setSessionfunc(access, refresh);
}, [access, refresh]);

一旦设置了会话,您将被重定向到主页
请记住,supabase会话使用cookie,因此您需要将其添加到电容器中。config.js

plugins: {
    CapacitorCookies: {
      enabled: true
    } 
}

好运

相关问题