BotSharp/src/Infrastructure/BotSharp.Abstraction/Users/IAuthenticationHook.cs

61 lines
1.5 KiB
C#
Raw Normal View History

2024-01-31 15:15:41 +00:00
using BotSharp.Abstraction.Users.Models;
2024-10-19 15:06:24 +00:00
using System.IdentityModel.Tokens.Jwt;
2024-01-31 19:57:54 +00:00
using System.Security.Claims;
2024-01-31 15:15:41 +00:00
namespace BotSharp.Abstraction.Users;
public interface IAuthenticationHook
{
2024-10-19 15:06:24 +00:00
/// <summary>
/// Interupt the authentication process, and return the user object if the user is authenticated
/// </summary>
/// <param name="id"></param>
/// <param name="password"></param>
/// <returns></returns>
2024-01-31 15:15:41 +00:00
Task<User> Authenticate(string id, string password);
2024-10-19 15:06:24 +00:00
/// <summary>
/// Add extra claims to user
/// </summary>
/// <param name="claims"></param>
/// <returns></returns>
bool AddClaims(List<Claim> claims)
=> true;
/// <summary>
/// User authenticated successfully
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
bool UserAuthenticated(JwtSecurityToken token)
=> true;
/// <summary>
/// Bfore user updating
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
2024-10-13 23:24:36 +00:00
Task UserUpdating(User user);
2024-10-19 15:06:24 +00:00
/// <summary>
/// After user created
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
2024-05-21 10:51:38 +00:00
Task UserCreated(User user);
2024-10-19 15:06:24 +00:00
/// <summary>
/// Reset password
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
2024-06-28 10:08:56 +00:00
Task VerificationCodeResetPassword(User user);
2024-10-19 15:06:24 +00:00
/// <summary>
/// Delete users
/// </summary>
/// <param name="userIds"></param>
/// <returns></returns>
2024-09-29 11:26:17 +00:00
Task DelUsers(List<string> userIds);
2024-01-31 15:15:41 +00:00
}