public async Task <IResponseEntity> CreateAsync(LoginLogAddRequest req) { var entity = _mapper.Map <SysLoginLogEntity>(req); var item = await _loginLogRepository.InsertAsync(entity); return(ResponseEntity.Result(item?.Id != "")); }
public async Task <IResponseEntity> Login(AuthLoginRequest req) { var sw = new Stopwatch(); sw.Start(); var res = (await _authService.LoginAsync(req)) as IResponseEntity; sw.Stop(); if (!res.Success) { return(res); } else { var user = (res as IResponseEntity <AuthLoginResponse>).Data; #region 写登录日志 string ua = HttpContext.Request.Headers["User-Agent"]; var client = UAParser.Parser.GetDefault().Parse(ua); var device = client.Device.Family; var loginLogAddRequest = new LoginLogAddRequest() { CreatedBy = user.Id, CreatedByName = user.UserName, RealName = user.DisplayName, ElapsedMilliseconds = sw.ElapsedMilliseconds, Status = res.Success, Message = res.Message, Browser = client.UA.Family, Os = client.OS.Family, Device = device.ToLower() == "other" ? "" : device, BrowserInfo = ua, Ip = IPHelper.GetIP(HttpContext?.Request) }; await _loginLogService.CreateAsync(loginLogAddRequest); #endregion #region 构造JWT Token var claims = new Claim[] { new Claim(ClaimAttributes.UserId, user.Id.ToString()), new Claim(ClaimAttributes.UserName, user.UserName), new Claim(ClaimAttributes.DisplayName, user.DisplayName), new Claim(ClaimAttributes.PermissionId, user.PermissionId) }; var token = _authToken.Build(claims); #endregion var data = new { token, uuid = user.Id, info = new { id = user.Id, name = user.UserName, displayName = user.DisplayName, avatar = user.Avatar, menus = user.Menus, functionPoints = user.FunctionPoints } }; return(ResponseEntity.Ok(data)); } }