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;
}