React Native 超级数据库验证-重定向到不适用于OAuth

ztigrdn8  于 2023-02-13  发布在  React
关注(0)|答案(1)|浏览(123)

我正在从Flutter切换到Supabase,并且遇到了身份验证问题。虽然我可以使用正确的重定向值成功启动URL,但我总是被重定向到网站URL,该URL只能用于Web,而不能用于iOS或Android。下面是我在苹果使用的功能,但所有其他提供商也会出现这种情况。

const isWeb = Platform.OS === "web";
const redirectTo = isWeb
  ? "https://web.example.com/login-callback/"
  : "com.example.react://login-callback/";

export const signInWithApple = async () => {
  const { data, error } = await supabase.auth.signInWithOAuth({
    provider: "apple",
    options: {
      redirectTo: redirectTo,
    },
  });

  if (error !== null) {
    console.log(error?.message);
    return "error";
  } else {
    console.log(data);
    Linking.openURL(data.url);
    return "success";
  }
};

启动前记录的URL是正确的,例如LOG {"provider": "apple", "url": "https://api.example.com/auth/v1/authorize?provider=apple&redirect_to=com.example.react%3A%2F%2Flogin-callback%2F"},但我总是被重定向到类似https://web.example.com/#access_token=*****的地方。我在Flutter上遇到过类似的问题,那是因为我没有在Supabase中添加额外的重定向,但我已经添加了。我还确认我在info.plist for iOS中设置了CFBundleURLSchemes,但没有修复它。

3pmvbmvn

3pmvbmvn1#

如果是自托管:
检查ADDITIONAL_REDIRECT_URLS中的逗号后面是否有空格。
正确:ADDITIONAL_REDIRECT_URLS="URL,URL,URL"
错误:ADDITIONAL_REDIRECT_URLS="URL, URL, URL"

相关问题