Exemple #1
0
        public async Task <ActionResult <AuthTokenResponse> > RefreshToken([FromBody] AuthRefreshTokenRequest request)
        {
            //var userId = GetUserId();

            var user = await _userRepository.GetAsync(request.UserId);

            if (user.AuthToken.Refresh == request.RefreshToken)
            {
                var token = await _authService.Generate(user.Email);

                var refreshToken = _authService.GenerateRefreshToken();
                user.AuthToken.Refresh          = refreshToken;
                user.AuthToken.Auth             = token;
                user.AuthToken.RefreshExpiredAt = DateTime.UtcNow.AddMinutes(15);
                await _userRepository.Update(user);

                return(new AuthTokenResponse
                {
                    AuthToken = token,
                    RefreshToken = refreshToken,
                    UserDbId = user.Id
                });
            }
            else
            {
                await _userRepository.Delete(user.AuthToken);

                return(Unauthorized());
            }
        }
Exemple #2
0
        public async Task <IActionResult> RefreshToken([FromBody] AuthRefreshTokenRequest request)
        {
            var authResponse = await _authService.RefreshTokenAsync(request.Token, request.RefreshToken);

            if (!authResponse.Success)
            {
                return(BadRequest(new ErrorResponse(authResponse.Error)));
            }

            return(Ok(new AuthSuccessResponse
            {
                Token = authResponse.Token,
                RefreshToken = authResponse.RefreshToken
            }));
        }