Cuentas federadas
Por defecto, la API de WaaS solo permite una cuenta por correo electrónico. Si un usuario intenta iniciar sesión usando un método diferente pero el mismo correo electrónico que antes, recibirá un error EmailAlreadyInUse
.
Por ejemplo: si el usuario creó su cuenta usando Google Sign In y luego intenta iniciar sesión con Correo electrónico + OTP usando un método diferente, recibirá este error.
Por defecto (si utiliza el LoginPanel
predeterminado), el SDK abrirá automáticamente el prefab FederatedAuthPopupPanel
ubicado en SequenceFrontend > Prefabs > FederatedAuthPopupPanel
. Este prefab puede personalizarse a su gusto o reemplazarse en el prefab LoginPanel
. Este panel explicará al usuario que no se permiten métodos de inicio de sesión duplicados y le pedirá que regrese a la pantalla de inicio de sesión e ingrese con su método asociado (o con un correo electrónico diferente).
EnableMultipleAccountsPerEmail
está habilitado en SequenceConfig
, el FederatedAuthPopupPanel
le dará al usuario la opción de crear otra cuenta asociada a su correo electrónico.Una vez que el usuario haya iniciado sesión en su cuenta, el SDK realizará automáticamente una solicitud FederateAccount
(ver SequenceLogin
). Esto asociará también el método de inicio de sesión fallido con ese correo electrónico, de modo que el usuario podrá iniciar sesión con cualquiera de los dos en el futuro. Usando el ejemplo anterior, el usuario ahora podrá iniciar sesión en su cuenta usando Google Sign In o Correo electrónico + OTP.
Federar cuentas manualmente
Puede que desee agregar un botón en su aplicación para permitir al usuario asociar un método de inicio de sesión adicional a su correo electrónico (especialmente si utiliza el inicio de sesión como invitado). Debe obtener una referencia a SequenceLogin
y luego llamar al método FederateAccount
correspondiente para el método de inicio de sesión.
donde walletAddress es la dirección del SequenceWallet
que obtuvo tras autenticar al usuario.
Reutilizar el LoginPanel predeterminado
Para permitir que un usuario federé o vincule sus cuentas manualmente usando el LoginPanel predeterminado, simplemente llame a SetConnectedWalletAddress
en su instancia de SequenceLogin
o llame a SequenceLogin.GetInstanceToFederateAuth
con la dirección de wallet autenticada actualmente.
Esto configurará su instancia de SequenceLogin para federar las cuentas en lugar de crear una nueva sesión.
SetConnectedWalletAddress(null)
para reconfigurar SequenceLogin y volver a crear sesiones nuevas.p. ej.
Eliminar cuentas federadas
Si en algún momento desea eliminar la asociación de una cuenta federada, puede hacerlo con el método IWallet.RemoveFederatedAccount
.