using AsbCloudApp.Data; using System.Security.Claims; using System.Threading; using System.Threading.Tasks; namespace AsbCloudApp.Services { /// <summary> /// Сервис авторизации /// </summary> public interface IAuthService { /// <summary> /// Смена пароля пользователю /// </summary> /// <param name="idUser"></param> /// <param name="newPassword"></param> /// <returns></returns> int ChangePassword(int idUser, string newPassword); /// <summary> /// Смена пароля пользователю /// </summary> /// <param name="userLogin"></param> /// <param name="newPassword"></param> /// <returns></returns> int ChangePassword(string userLogin, string newPassword); /// <summary> /// Авторизация /// </summary> /// <param name="login"></param> /// <param name="password"></param> /// <param name="token">токен отмены задачи</param> /// <returns></returns> Task<UserTokenDto> LoginAsync(string login, string password, CancellationToken token = default); /// <summary> /// Обновление токена авторизации /// </summary> /// <param name="user"></param> /// <returns></returns> Task<UserTokenDto?> RefreshAsync(ClaimsPrincipal identity, CancellationToken token); /// <summary> /// Регистрация нового пользователя /// </summary> /// <param name="userDto"></param> /// <returns></returns> int Register(UserRegistrationDto userDto); } }