山东雷驰
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
3.1 KiB

3 months ago
using Kean.Application.Command.ViewModels;
namespace Kean.Application.Command.Interfaces
{
/// <summary>
/// 表示身份命令服务
/// </summary>
public interface IIdentityService
{
/// <summary>
/// 登录
/// </summary>
/// <param name="user">用户视图</param>
/// <param name="remoteIp">远程地址</param>
/// <param name="userAgent">UA 信息</param>
/// <returns>令牌。当用户身份验证成功时,生成 Guid 字符串作为令牌,如果令牌为 string.Empty,则表示用户被禁止操作(冻结);当用户身份验证失败时,返回 null</returns>
System.Threading.Tasks.Task<string> Login(User user, string remoteIp, string userAgent);
/// <summary>
/// 连接
/// </summary>
/// <param name="token">令牌</param>
/// <param name="id">连接 ID</param>
System.Threading.Tasks.Task Connect(string token, string id);
/// <summary>
/// 断开
/// </summary>
/// <param name="token">令牌</param>
/// <param name="id">连接 ID</param>
System.Threading.Tasks.Task Disconnect(string token, string id);
/// <summary>
/// 注销
/// </summary>
/// <param name="token">令牌</param>
/// <param name="reason">原因</param>
System.Threading.Tasks.Task Logout(string token, string reason);
/// <summary>
/// 根据客户端令牌进行会话状态验证
/// </summary>
/// <param name="token">令牌</param>
/// <returns>身份标识。验证失败时为 null</returns>
System.Threading.Tasks.Task<int?> Authenticate(string token);
/// <summary>
/// 导航
/// </summary>
/// <param name="token">令牌</param>
/// <param name="url">URL</param>
/// <param name="ignore">忽略项</param>
/// <returns>操作结果及失败信息</returns>
System.Threading.Tasks.Task<(bool Success, Failure Failure)> Navigate(string token, string url, params string[] ignore);
/// <summary>
/// 初始化密码
/// </summary>
/// <param name="password">修改视图</param>
/// <returns>操作结果及失败信息</returns>
System.Threading.Tasks.Task<(bool Success, Failure Failure)> InitializePassword(Password password);
/// <summary>
/// 修改密码
/// </summary>
/// <param name="password">修改视图</param>
/// <returns>操作结果及失败信息</returns>
System.Threading.Tasks.Task<(bool Success, Failure Failure)> ModifyPassword(Password password);
/// <summary>
/// 修改头像
/// </summary>
/// <param name="user">用户视图</param>
/// <returns>操作结果及失败信息</returns>
System.Threading.Tasks.Task<(bool Success, Failure Failure)> ModifyAvatar(User user);
/// <summary>
/// 终结非法会话
/// </summary>
System.Threading.Tasks.Task Finalize();
}
}