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