private EmailActionLinkRequest(string type, string email, ActionCodeSettings settings)
        {
            if (string.IsNullOrEmpty(email))
            {
                throw new ArgumentException("Email cannot be null or empty.");
            }

            if (type == EmailSignIn && settings == null)
            {
                throw new ArgumentNullException(
                          "ActionCodeSettings must not be null when generating sign in links");
            }

            this.RequestType = type;
            this.Email       = email;
            if (settings != null)
            {
                this.Url                   = settings.Url;
                this.HandleCodeInApp       = settings.HandleCodeInApp;
                this.DynamicLinkDomain     = settings.DynamicLinkDomain;
                this.IosBundleId           = settings.IosBundleId;
                this.AndroidPackageName    = settings.AndroidPackageName;
                this.AndroidMinimumVersion = settings.AndroidMinimumVersion;
                this.AndroidInstallApp     = settings.AndroidInstallApp;

                this.ValidateSettings();
            }
        }
        /// <summary>
        /// Generates the out-of-band email action link for email link sign-in flows for the
        /// specified email address.
        /// </summary>
        /// <exception cref="FirebaseAuthException">If an error occurs while generating the link.</exception>
        /// <param name="email">The email of the user signing in.</param>
        /// <param name="settings">The action code settings object that defines whether
        /// the link is to be handled by a mobile app and the additional state information to be
        /// passed in the deep link.</param>
        /// <param name="cancellationToken">A cancellation token to monitor the asynchronous
        /// operation.</param>
        /// <returns>A task that completes with the email sign in link.</returns>
        public async Task <string> GenerateSignInWithEmailLinkAsync(
            string email, ActionCodeSettings settings, CancellationToken cancellationToken)
        {
            var userManager = this.IfNotDeleted(() => this.userManager.Value);
            var request     = EmailActionLinkRequest.EmailSignInLinkRequest(email, settings);

            return(await userManager.GenerateEmailActionLinkAsync(request, cancellationToken)
                   .ConfigureAwait(false));
        }
 /// <summary>
 /// Generates the out-of-band email action link for email link sign-in flows for the
 /// specified email address.
 /// </summary>
 /// <exception cref="FirebaseAuthException">If an error occurs while generating the link.</exception>
 /// <param name="email">The email of the user signing in.</param>
 /// <param name="settings">The action code settings object that defines whether
 /// the link is to be handled by a mobile app and the additional state information to be
 /// passed in the deep link.</param>
 /// <returns>A task that completes with the email sign in link.</returns>
 public async Task <string> GenerateSignInWithEmailLinkAsync(
     string email, ActionCodeSettings settings)
 {
     return(await this.GenerateSignInWithEmailLinkAsync(email, settings, default(CancellationToken))
            .ConfigureAwait(false));
 }
Exemplo n.º 4
0
 internal static EmailActionLinkRequest EmailVerificationLinkRequest(
     string email, ActionCodeSettings settings)
 {
     return(new EmailActionLinkRequest(VerifyEmail, email, settings));
 }
Exemplo n.º 5
0
 internal static EmailActionLinkRequest PasswordResetLinkRequest(
     string email, ActionCodeSettings settings)
 {
     return(new EmailActionLinkRequest(PasswordReset, email, settings));
 }
 internal static EmailActionLinkRequest EmailSignInLinkRequest(
     string email, ActionCodeSettings settings)
 {
     return(new EmailActionLinkRequest(EmailSignIn, email, settings));
 }