public async Task <Jwt> CreateToken(TokenCreateDto dto, CancellationToken cancellationToken) { var user = _unitOfWork.UserRepository .Get(u => string.Equals(u.Email, dto.Email, StringComparison.CurrentCultureIgnoreCase)) .FirstOrDefault(); if (user == null) { return(null); } if (!_userService.VerifyPassword(user, dto.Password)) { return(null); } var claims = CreateClaims(user); var refreshToken = BuildRefreshToken(user); var jwt = BuildJwt(claims); var token = new JwtSecurityTokenHandler().WriteToken(jwt); var guid = await _tokenManager.GetGuidFromRequest(cancellationToken); await _tokenManager.AddNewTokens(token, refreshToken, user.Id, guid, cancellationToken); return(new Jwt { SecurityToken = token, RefreshToken = refreshToken, ExpiryDate = DateTime.UtcNow.AddMinutes(_options.Exp) }); }
public async Task <LinkResponse> GetLinkToken(TokenCreateDto body) { body.ClientId = _plaidSettings.ClientId; body.ClientSecret = _plaidSettings.ClientSecret; var jsonBod = JsonConvert.SerializeObject(body); var requestBody = new StringContent( jsonBod, Encoding.UTF8, "application/json"); var response = await _client.PostAsync("/link/token/create", requestBody); var responseStream = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <LinkResponse>(responseStream)); }
public async Task <ActionResult <LinkResponse> > GetLinkToken([FromBody] TokenCreateDto body) { var linkResponse = await _plaidService.GetLinkToken(body); return(Ok(linkResponse)); }