У меня есть следующий код для повторной аутентификации пользователя:
checkAccountPassword(password) {
if (this.isFirebaseUserLoggedWithFacebook()) {
return this.afAuth.auth.currentUser.reauthenticateAndRetrieveDataWithCredential(firebase.auth.FacebookAuthProvider.credential(facebookToken - WHERE_CAN_I_FIND_THIS_TOKEN?????));
}
return this.afAuth.auth.currentUser.reauthenticateAndRetrieveDataWithCredential(firebase.auth.EmailAuthProvider.credential(firebase.auth().currentUser.email, password));
}
Затем я могу удалить пользователя (потому что удаление требует недавнего аутентификации).
Проблема в том, что я не могу получитьтокен, который мне нужен для повторного доступа пользователя FB.
У меня есть код, где я могу получить токен, но это на всякий случай, когда у пользователя установлено приложение Facebook, но если пользователь использует всплывающее окно для входа в Facebook, я неНе могу понять, где я могу получить facebookToken
doFacebookLogin() {
if (this.platform.is('cordova')) {
return from(this.fb.login(['email', 'public_profile'])).pipe(
switchMap(response => {
this.currentFacebookCredential = firebase.auth.FacebookAuthProvider.credential(response.authResponse.accessToken);
return from(firebase.auth().signInAndRetrieveDataWithCredential(this.currentFacebookCredential));
}),
switchMap(() => {
return this.afAuth.idToken;
}),
first(),
);
} else {
const provider = new firebase.auth.FacebookAuthProvider();
provider.addScope('email');
provider.addScope('public_profile');
return from(this.afAuth.auth.signInWithPopup(provider)).pipe(
switchMap(() => this.afAuth.idToken),
first(),
);
}
}