Exemplo n.º 1
0
        public async Task <AuthResponce> RefreshToken(string refreshToken, string ipAddress)
        {
            var tokens = await _tokenRefreshService.GetRefreshTokenByToken(refreshToken);

            var token = tokens.Where(i => i.CreatedByIp == ipAddress).FirstOrDefault(t => t.IsActive == true);

            if (!(token is null))
            {
                var newRefreshToken = await _tokenRefreshService.UpdateRefreshToken(ipAddress, token);

                var user = await _userManager.FindByIdAsync(newRefreshToken.CreatorId.ToString());

                var jwtToken = await GetFullJwtAsync(user);

                return(new AuthResponce
                {
                    RefreshToken = newRefreshToken.Token,
                    AccessToken = jwtToken
                });
            }

            throw new ArgumentNullException("", Resources.FindError);
        }