public async Task SimpleAuthTest() { var database = new Butterfly.Core.Database.Memory.MemoryDatabase(); //var database = new Butterfly.MySql.MySqlDatabase("Server=127.0.0.1;Uid=test;Pwd=test!123;Database=butterfly_auth_test"); await TruncateData(database); await database.CreateFromResourceFileAsync(Assembly.GetExecutingAssembly(), "Butterfly.Core.Auth.Test.db.sql"); database.SetDefaultValue("id", tableName => Guid.NewGuid().ToString()); database.SetDefaultValue("created_at", tableName => DateTime.Now.ToUnixTimestamp()); database.SetDefaultValue("updated_at", tableName => DateTime.Now.ToUnixTimestamp()); database.AddInputPreprocessor(BaseDatabase.RemapTypeInputPreprocessor <DateTime>(dateTime => dateTime.ToUnixTimestamp())); AuthManager authManager = new AuthManager(database, onForgotPassword: user => { logger.Debug($"onForgotPassword():user={user}"); return(Task.FromResult(0)); }); UserRefToken registerAuthToken = await authManager.RegisterAsync(new { username = "******", first_name = "John", last_name = "Smith", email = "*****@*****.**", password = "******" }); AuthToken authToken = await authManager.AuthenticateAsync(UserRefTokenAuthenticator.AUTH_TYPE, registerAuthToken.id); await authManager.ForgotPasswordAsync("johnsmith"); await Task.Delay(30000); }