public async Task <AjaxResult> Login(LoginDto dto) { Check.NotNull(dto, nameof(dto)); if (!ModelState.IsValid) { return(new AjaxResult("提交信息验证失败", AjaxResultType.Error)); } //todo: 校验验证码 dto.Ip = HttpContext.GetClientIp(); dto.UserAgent = Request.Headers["User-Agent"].FirstOrDefault(); OperationResult <User> result = await _identityContract.Login(dto); IUnitOfWork unitOfWork = HttpContext.RequestServices.GetUnitOfWork <User, int>(); unitOfWork.Commit(); if (!result.Succeeded) { return(result.ToAjaxResult()); } User user = result.Data; await _signInManager.SignInAsync(user, dto.Remember); return(new AjaxResult("登录成功")); }
public async Task <AjaxResult> Token(TokenDto dto) { string grantType = dto.GrantType?.UpperToLowerAndSplit("_"); if (grantType == GrantType.Password) { Check.NotNull(dto.Account, nameof(dto.Account)); Check.NotNull(dto.Password, nameof(dto.Password)); LoginDto loginDto = new LoginDto() { Account = dto.Account, Password = dto.Password, ClientType = dto.ClientType, IsToken = true, Ip = HttpContext.GetClientIp(), UserAgent = Request.Headers["User-Agent"].FirstOrDefault() }; IUnitOfWork unitOfWork = HttpContext.RequestServices.GetUnitOfWork(true); OperationResult <User> result = await _identityContract.Login(loginDto); #if NET5_0 await unitOfWork.CommitAsync(); #else unitOfWork.Commit(); #endif if (!result.Succeeded) { return(result.ToAjaxResult()); } User user = result.Data; JsonWebToken token = await CreateJwtToken(user, dto.ClientType); return(new AjaxResult("登录成功", AjaxResultType.Success, token)); } if (grantType == GrantType.RefreshToken) { Check.NotNull(dto.RefreshToken, nameof(dto.RefreshToken)); JsonWebToken token = await CreateJwtToken(dto.RefreshToken); return(new AjaxResult("刷新成功", AjaxResultType.Success, token)); } return(new AjaxResult("GrantType错误", AjaxResultType.Error)); }
public async Task <AjaxResult> LoginAsync([FromBody] LoginInputDto loginDto) { var result = await _identityContract.Login(loginDto); var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);//用户标识 identity.AddClaims(result.cliams); return(result.item.ToAjaxResult()); }
public async Task <AjaxResult> Login([FromBody] LoginDto dto) { Check.NotNull(dto, nameof(dto)); if (!ModelState.IsValid) { return(new AjaxResult("提交信息验证失败", AjaxResultType.Error)); } //todo: 校验验证码 dto.Ip = HttpContext.GetClientIp(); dto.UserAgent = Request.Headers["User-Agent"].FirstOrDefault(); OperationResult <string> result = await _identityService.Login(dto); return(new AjaxResult(result.Message)); }