-
Notifications
You must be signed in to change notification settings - Fork 372
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
linkIdentity() does not work with React Native #1645
Comments
@norenz92 can you elaborate more on this statement? do you get some sort of error when you call |
No error. It's just that this function does not seem to be meant to use with native auth for these providers. The function returns a redirect URL which from AFAIK has no use in my case. |
@norenz92 it works just like |
I don't want to redirect the user to a browser from the app... |
@norenz92 I was confused in a similar way, you will need to utilise something like expo-web-browser to prompt open an in-app browser to handle the redirecting. This seems to be the standard way to handle social logins inside of apps.. I'm not aware of a different solution. |
Linking works also in React Native with the standard OAuth flow over the web-browser, for anyone interested, this is how I got it to work, linking the user through an in-app browser: const { data, error } = await supabase.auth.linkIdentity({
provider: "apple",
options: {
skipBrowserRedirect: true,
redirectTo: "<YOUR_APP_DEEPLINK>",
},
});
if (data.url) {
await WebBrowser.openAuthSessionAsync(
data.url,
"<YOU_APP_DEEPLINK>"
);
} However I agree with @norenz92 that this could be improved. Supabase already has capabilities to support native sign-in methods on mobile platforms (see docs). Currently I can already offer a native sign-in this way using const credential = await AppleAuthentication.signInAsync({
requestedScopes: [AppleAuthentication.AppleAuthenticationScope.EMAIL],
});
// This works for non-anonymous signups
await supabase.auth.signInWithIdToken({
provider: "apple",
token: credential.identityToken,
});
// This is how I would imagine linkIdentity to support native sign-ins
const { data, error } = await supabase.auth.linkIdentity({
provider: "apple",
token: credential.identityToken, // This is currently not possible!
options: { skipBrowserRedirect: true },
}); Is there anything speaking against allowing us to pass the OIDC token to |
Bug report
Describe the bug
Not sure if this is a bug or just not compatible with React Native, but there is no way to use
linkIdentity()
with native social logins like Google, Facebook and Apple in a React Native app. Documentation does not provide any information on how to implement this.System information
The text was updated successfully, but these errors were encountered: