public async Task <IActionResult> Login([FromBody] LoginParametersDto loginParametersDto) { IdentityCard card = await _cardManager.FindByIdAsync(loginParametersDto.CardNumber); // check null card if (card == null) { return(NotFound("please register your card")); } // check password var passwordCorrect = await _cardManager.CheckPasswordAsync(card, loginParametersDto.Pin); if (!passwordCorrect) { return(Unauthorized("pin incorrect")); } var refreshToken = _tokenManager.CreateRefreshToken(loginParametersDto.CardNumber); var cardDto = _mapper.Map <CardDto>(card); cardDto.Bearer = _tokenManager.CreateJwt(loginParametersDto.CardNumber); cardDto.RefreshToken = null; if (await _tokenManager.SaveRefreshToken(refreshToken)) { cardDto.RefreshToken = refreshToken.Token; } return(Ok(cardDto)); }