typescript - React Native Expo Xác thực Facebook với Supabase và react-native-fbsdk-next: Không khớp Nonces
Tôi đang cố gắng triển khai xác thực Facebook trong một ứng dụng React Native Expo sử dụng Supabase và react-native-fbsdk-next. Hiện tại, tôi đang theo hướng dẫn triển khai xác thực Google được Supabase cung cấp và điều chỉnh nó cho Facebook, vì tài liệu của Supabase không cung cấp hướng dẫn rõ ràng về cách triển khai xác thực Facebook với Expo. Theo tài liệu API của Supabase, phương thức signInWithIdToken chấp nhận 'facebook' như một tùy chọn nhà cung cấp, giống như 'google'.
Đây là hàm mà tôi đang sử dụng để đăng nhập Facebook:
const facebookSignIn = async () => {
try {
const res = await LoginManager.logInWithPermissions(
['public_profile'],
'limited'
);
if (res.isCancelled) {
throw new Error('User cancelled the login process');
} else if (Platform.OS === 'ios') {
const res = await AuthenticationToken.getAuthenticationTokenIOS();
if (res) {
const { data, error } = await supabase.auth.signInWithIdToken({
provider: 'facebook',
token: res.authenticationToken,
nonce: res.nonce,
});
console.log({ data, error });
} else {
throw new Error('No auth token present');
}
}
} catch (error: any) {}
};
Khi tôi chạy hàm này, tôi nhận được lỗi AuthApiError: Nonces mismatch. Tuy nhiên, khi tôi ghi giá trị nonce ra console, nonce được cung cấp cho signInWithIdToken và nonce tôi nhận được từ getAuthenticationTokenIOS đều là cùng một giá trị.
Tôi không chắc tại sao tôi lại gặp lỗi này hoặc cách khắc phục nó. Có ai có thể hướng dẫn tôi cách thực hiện chức năng đăng nhập này không? Bất kỳ sự giúp đỡ nào cũng sẽ được đánh giá cao.