Exemple #1
0
        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)
            });
        }
Exemple #2
0
    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));
        }