using System.Text.Json; using XFEExtension.NetCore.ServerInteractive.Attributes; using XFEExtension.NetCore.ServerInteractive.Implements.Requester; using XFEExtension.NetCore.ServerInteractive.Interfaces; using XFEExtension.NetCore.ServerInteractive.Models.RequesterModels; using XFEExtension.NetCore.ServerInteractive.Utilities.JsonConverter; namespace XFEExtension.NetCore.ServerInteractive.Utilities.Requester.Services; /// /// 用户请求服务(包含登录与登录校验) /// public partial class UserRequestService : StandardRequestServiceBase where T : IUserFaceInfo { private readonly JsonSerializerOptions _jsonSerializerOptions = new(); /// /// 用户请求服务 /// public UserRequestService() => _jsonSerializerOptions.Converters.Add(new JsonDateTimeConverter()); /// /// 解析登录响应 /// [Response("user/login", Name = "login")] public object AnalyzeLoginResponse() { var result = JsonSerializer.Deserialize>(Response, _jsonSerializerOptions); Session = result!.Session; return result; } /// /// 构造登录请求体 /// [Request("user/login", Name = "login")] public object PostLoginRequest() => new { deviceInfo = DeviceInfo, account = Parameters[0], password = Parameters[1] }; /// /// 解析登录校验响应 /// [Response("user/relogin", Name = "relogin")] public object AnalyzeReloginResponse() => JsonSerializer.Deserialize(Response, _jsonSerializerOptions)!; /// /// 构造登录校验请求体 /// [Request("user/relogin", Name = "relogin")] public object PostReloginRequest() => new { session = Session, deviceInfo = DeviceInfo, }; }