1 // Copyright (c) .NET Foundation. All rights reserved. 2 // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. 3 4 using System; 5 using System.Collections.Generic; 6 7 namespace Microsoft.AspNetCore.Identity 8 { 9 /// <summary> 10 /// Options for user tokens. 11 /// </summary> 12 public class TokenOptions 13 { 14 /// <summary> 15 /// Default token provider name used by email confirmation, password reset, and change email. 16 /// </summary> 17 public static readonly string DefaultProvider = "Default"; 18 19 /// <summary> 20 /// Default token provider name used by the email provider. />. 21 /// </summary> 22 public static readonly string DefaultEmailProvider = "Email"; 23 24 /// <summary> 25 /// Default token provider name used by the phone provider. />. 26 /// </summary> 27 public static readonly string DefaultPhoneProvider = "Phone"; 28 29 /// <summary> 30 /// Default token provider name used by the <see cref="AuthenticatorTokenProvider"/>. 31 /// </summary> 32 public static readonly string DefaultAuthenticatorProvider = "Authenticator"; 33 34 /// <summary> 35 /// Will be used to construct UserTokenProviders with the key used as the providerName. 36 /// </summary> 37 public Dictionary<string, TokenProviderDescriptor> ProviderMap { get; set; } = new Dictionary<string, TokenProviderDescriptor>(); 38 39 /// <summary> 40 /// Gets or sets the token provider used to generate tokens used in account confirmation emails. 41 /// </summary> 42 /// <value> 43 /// The <see cref="IUserTwoFactorTokenProvider{TUser}"/> used to generate tokens used in account confirmation emails. 44 /// </value> 45 public string EmailConfirmationTokenProvider { get; set; } = DefaultProvider; 46 47 /// <summary> 48 /// Gets or sets the <see cref="IUserTwoFactorTokenProvider{TUser}"/> used to generate tokens used in password reset emails. 49 /// </summary> 50 /// <value> 51 /// The <see cref="IUserTwoFactorTokenProvider{TUser}"/> used to generate tokens used in password reset emails. 52 /// </value> 53 public string PasswordResetTokenProvider { get; set; } = DefaultProvider; 54 55 /// <summary> 56 /// Gets or sets the <see cref="ChangeEmailTokenProvider"/> used to generate tokens used in email change confirmation emails. 57 /// </summary> 58 /// <value> 59 /// The <see cref="ChangeEmailTokenProvider"/> used to generate tokens used in email change confirmation emails. 60 /// </value> 61 public string ChangeEmailTokenProvider { get; set; } = DefaultProvider; 62 63 /// <summary> 64 /// Gets or sets the <see cref="ChangePhoneNumberTokenProvider"/> used to generate tokens used when changing phone numbers. 65 /// </summary> 66 /// <value> 67 /// The <see cref="ChangePhoneNumberTokenProvider"/> used to generate tokens used when changing phone numbers. 68 /// </value> 69 public string ChangePhoneNumberTokenProvider { get; set; } = DefaultPhoneProvider; 70 71 /// <summary> 72 /// Gets or sets the <see cref="AuthenticatorTokenProvider"/> used to validate two factor sign ins with an authenticator. 73 /// </summary> 74 /// <value> 75 /// The <see cref="AuthenticatorTokenProvider"/> used to validate two factor sign ins with an authenticator. 76 /// </value> 77 public string AuthenticatorTokenProvider { get; set; } = DefaultAuthenticatorProvider; 78 79 /// <summary> 80 /// Gets or sets the issuer used for the authenticator issuer. 81 /// </summary> 82 public string AuthenticatorIssuer { get; set; } = "Microsoft.AspNetCore.Identity.UI"; 83 } 84 }