using BotSharp.Abstraction.Users.Models; using Microsoft.AspNetCore.Authentication; using System.Security.Claims; namespace BotSharp.Abstraction.Users; public interface IAuthenticationHook { /// /// Interupt the authentication process, and return the user object if the user is authenticated /// /// /// /// Task Authenticate(string id, string password) => Task.FromResult(new User()); /// /// Add extra claims to user /// /// /// bool AddClaims(List claims) => true; /// /// User authenticated successfully /// /// /// /// bool UserAuthenticated(User user, Token token) => true; Task OAuthCompleted(TicketReceivedContext context) => Task.CompletedTask; /// /// Bfore user updating /// /// /// Task UserUpdating(User user) => Task.CompletedTask; /// /// After user created /// /// /// Task UserCreated(User user) => Task.CompletedTask; /// /// Reset password /// /// /// Task SendVerificationCode(User user) => Task.CompletedTask; /// /// Delete users /// /// /// Task DelUsers(List userIds) => Task.CompletedTask; }