Ejemplo n.º 1
0
        public async Task <ActionResult <AuthenticationResponse> > Authenticate()
        {
            if (User.IsAuthenticated())
            {
                return(Ok(new AuthenticationResponse
                {
                    IsAuthenticated = true
                }));
            }

            string userId =
                await AddUserIdClaimIfEmpty() ??
                User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            ApplicationUser user = await _userStore.FindByIdAsync(userId, CancellationToken.None);

            if (user == null)
            {
                return(NotFound());
            }

            var authToken    = _tokenHelper.GenerateJwtToken(user);
            var refreshToken = await _tokenHelper.GenerateRefreshToken(user);

            return(Ok(new AuthenticationResponse
            {
                AuthToken = authToken,
                RefreshToken = refreshToken
            }));
        }