public override async Task <GrpcResponse> Login(LoginRequest request, ServerCallContext context) { var loginDto = _mapper.Map <UserLoginDto>(request); var loginResult = await _accountService.LoginAsync(loginDto); var grpcResponse = new GrpcResponse() { IsSuccessStatusCode = loginResult.IsSuccess }; if (!grpcResponse.IsSuccessStatusCode) { grpcResponse.Error = loginResult.ProblemDetails?.Detail; return(grpcResponse); } var validatedInfo = loginResult.Content; var loginReply = new LoginReply { Token = JwtTokenHelper.CreateAccessToken(_jwtOptions.Value, validatedInfo.ValidationVersion, validatedInfo.Account, validatedInfo.Id.ToString(), validatedInfo.Name, validatedInfo.RoleIds).Token, RefreshToken = JwtTokenHelper.CreateRefreshToken(_jwtOptions.Value, validatedInfo.ValidationVersion, validatedInfo.Id.ToString()).Token }; grpcResponse.Content = Any.Pack(loginReply); return(grpcResponse); }
public async Task <ActionResult <UserTokenInfoDto> > RefreshAccessTokenAsync([FromBody] UserRefreshTokenDto input) { var claimOfId = JwtTokenHelper.GetClaimFromRefeshToken(_jwtOptions.Value, input.RefreshToken, JwtRegisteredClaimNames.NameId); if (claimOfId is not null) { var id = claimOfId.Value.ToLong(); if (id is null) { return(Forbid()); } var validatedInfo = await _accountService.GetUserValidatedInfoAsync(id.Value); if (validatedInfo is null) { return(Forbid()); } var jti = JwtTokenHelper.GetClaimFromRefeshToken(_jwtOptions.Value, input.RefreshToken, JwtRegisteredClaimNames.Jti); if (jti.Value != validatedInfo.ValidationVersion) { return(Forbid()); } var accessToken = JwtTokenHelper.CreateAccessToken(_jwtOptions.Value, validatedInfo.ValidationVersion, validatedInfo.Account, validatedInfo.Id.ToString(), validatedInfo.Name, validatedInfo.RoleIds); var refreshToken = JwtTokenHelper.CreateRefreshToken(_jwtOptions.Value, validatedInfo.ValidationVersion, validatedInfo.Id.ToString()); await _accountService.ChangeUserValidateInfoExpiresDtAsync(id.Value); var tokenInfo = new UserTokenInfoDto(accessToken.Token, accessToken.Expire, refreshToken.Token, refreshToken.Expire); return(Ok(tokenInfo)); } return(Forbid()); }
public async Task <UserTokenInfoDto> RefreshAccessToken([FromBody] RefreshTokenInputDto tokenInfo) { var userValidateDto = await _accountService.GetUserValidateInfo(tokenInfo); return(new UserTokenInfoDto { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, userValidateDto, tokenInfo.RefreshToken), RefreshToken = tokenInfo.RefreshToken }); }
public async Task <IActionResult> RefreshAccessToken([FromBody] RefreshTokenInputDto tokenInfo) { var userValidateDto = await _accountService.GetUserValidateInfo(tokenInfo); return(new OkObjectResult(new { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, userValidateDto, tokenInfo.RefreshToken), tokenInfo.RefreshToken })); }
public async Task <IActionResult> Login([FromBody] UserValidateInputDto userDto) { var userValidateDto = await _accountService.Login(userDto); return(new OkObjectResult(new { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, userValidateDto), RefreshToken = JwtTokenHelper.CreateRefreshToken(_jwtConfig, userValidateDto) })); }
public async Task <UserTokenInfoDto> Login([FromBody] UserValidateInputDto userDto) { var userValidateDto = await _accountService.Login(userDto); return(new UserTokenInfoDto { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, userValidateDto), RefreshToken = JwtTokenHelper.CreateRefreshToken(_jwtConfig, userValidateDto) }); }
public async Task <ActionResult <UserTokenInfoDto> > LoginAsync([FromBody] UserLoginDto input) { var result = await _accountService.LoginAsync(input); if (result.IsSuccess) { var validatedInfo = result.Content; var accessToken = JwtTokenHelper.CreateAccessToken(_jwtOptions.Value, validatedInfo.ValidationVersion, validatedInfo.Account, validatedInfo.Id.ToString(), validatedInfo.Name, validatedInfo.RoleIds); var refreshToken = JwtTokenHelper.CreateRefreshToken(_jwtOptions.Value, validatedInfo.ValidationVersion, validatedInfo.Id.ToString()); var tokenInfo = new UserTokenInfoDto(accessToken.Token, accessToken.Expire, refreshToken.Token, refreshToken.Expire); return(Created($"/auth/session", tokenInfo)); } return(Problem(result.ProblemDetails)); }
public async Task <ActionResult <UserTokenInfoDto> > RefreshAccessTokenAsync([FromBody] UserRefreshTokenDto input) { var result = await _accountService.GetUserValidateInfoAsync(input.Account); if (result.IsSuccess) { return(Ok(new UserTokenInfoDto { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, result.Content, input.RefreshToken), RefreshToken = input.RefreshToken })); } return(Problem(result.ProblemDetails)); }
public async Task <ActionResult <UserTokenInfoDto> > RefreshAccessTokenAsync([FromBody] UserRefreshTokenDto input) { var result = await _accountService.GetUserValidateInfoAsync(input.Id); if (result == null) { return(Ok(new UserTokenInfoDto { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, result, input.RefreshToken), RefreshToken = input.RefreshToken })); } return(NotFound()); }
public async Task <ActionResult <UserTokenInfoDto> > Login([FromBody] UserValidateInputDto userDto) { var result = await _accountService.Login(userDto); if (result.IsSuccess) { return(CreatedAtAction(nameof(GetCurrentUserInfo) , new UserTokenInfoDto { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, result.Content), RefreshToken = JwtTokenHelper.CreateRefreshToken(_jwtConfig, result.Content) })); } return(Problem(result.ProblemDetails)); }
public async Task <ActionResult <UserTokenInfoDto> > LoginAsync([FromBody] UserLoginDto input) { var result = await _accountService.LoginAsync(input); if (result.IsSuccess) { return(Created($"/usr/session" , new UserTokenInfoDto { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, result.Content), RefreshToken = JwtTokenHelper.CreateRefreshToken(_jwtConfig, result.Content) })); } return(Problem(result.ProblemDetails)); }
public async Task <UserTokenInfoDto> Login([FromBody] UserValidateInputDto userDto) { var ipAddress = _contextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); var device = _contextAccessor.HttpContext.Request.Headers["device"].ToString(); if (string.IsNullOrWhiteSpace(device)) { device = "web"; } var userValidateDto = await _accountService.Login(userDto, new CurrenUserInfoDto { RemoteIpAddress = ipAddress, Device = device }); return(new UserTokenInfoDto { Token = JwtTokenHelper.CreateAccessToken(_jwtConfig, userValidateDto), RefreshToken = JwtTokenHelper.CreateRefreshToken(_jwtConfig, userValidateDto) }); }