예제 #1
0
        public async Task <IActionResult> RefreshToken([FromBody] JToken jsonBody)
        {
            var refreshTokenValue = jsonBody.Value <string>("refreshToken");

            if (string.IsNullOrWhiteSpace(refreshTokenValue))
            {
                return(BadRequest("refreshToken is not set."));
            }

            var token = await _tokenStoreService.FindTokenAsync(refreshTokenValue);

            if (token == null)
            {
                return(Unauthorized());
            }

            var result = await _tokenFactoryService.CreateJwtTokensAsync(token.User);

            await _tokenStoreService.AddUserTokenAsync(token.User, result.RefreshTokenSerial, result.AccessToken, _tokenFactoryService.GetRefreshTokenSerial(refreshTokenValue));

            await _uow.SaveChangesAsync();

            _antiforgery.RegenerateAntiForgeryCookies(result.Claims);

            return(Ok(new { access_token = result.AccessToken, refresh_token = result.RefreshToken }));
        }
예제 #2
0
        public async Task <IActionResult> RefreshToken([FromBody] JToken jsonBody)
        {
            var refreshToken = jsonBody.Value <string>("refreshToken");

            if (string.IsNullOrWhiteSpace(refreshToken))
            {
                return(BadRequest("refreshToken is not set."));
            }

            var token = await _tokenStoreService.FindTokenAsync(refreshToken);

            if (token == null)
            {
                return(Unauthorized());
            }

            var(accessToken, newRefreshToken) = await _tokenStoreService.CreateJwtTokens(token.User, refreshToken);

            return(Ok(new { access_token = accessToken, refresh_token = newRefreshToken }));
        }
예제 #3
0
        public async Task <IActionResult> RefreshToken(string refresh_token)
        {
            if (string.IsNullOrWhiteSpace(refresh_token))
            {
                return(new BadRequestObjectResult(ApiResponse <string> .ErrorResult(message: "refreshToken is not set.", statusCode: HttpStatusCode.BadRequest)));
            }

            var token = await _tokenStoreService.FindTokenAsync(refresh_token);

            if (token == null)
            {
                return(new BadRequestObjectResult(ApiResponse <string> .ErrorResult(message: "Unauthorized.", statusCode: HttpStatusCode.Unauthorized)));
            }

            var(accessToken, newRefreshToken, claims) = await _tokenStoreService.CreateJwtTokens(token.User, refresh_token);

            //_antiforgery.RegenerateAntiForgeryCookies(claims);

            return(new OkObjectResult(ApiResponse <object> .SuccessResult(new { access_token = accessToken, refresh_token = newRefreshToken })));
        }
예제 #4
0
        //public async Task<IActionResult> RefreshToken([FromBody] JToken jsonBody)
        public async Task <IActionResult> RefreshToken(string refreshToken)
        {
            //var refreshToken = jsonBody.Value<string>("refreshToken");

            if (string.IsNullOrWhiteSpace(refreshToken))
            {
                return(BadRequest("JWT Auth Server : RefreshToken is not set."));
            }

            var token = await _tokenService.FindTokenAsync(refreshToken);

            token.User.SerialNumber = token.User.Id;
            token.User.Issuer       = "Insypher";

            var(accessToken, newRefreshToken, claims) = await _tokenService.CreateJwtToken(token.User, refreshToken);

            _antiForgeryCookieService.RegenerateAntiForgeryCookies(claims);

            return(Ok(new { access_token = accessToken, refresh_token = newRefreshToken }));
        }
        public async Task <IActionResult> RefreshToken([FromBody] JToken jsonBody)
        {
            string refreshToken = jsonBody.Value <string>("refreshToken");

            if (string.IsNullOrWhiteSpace(refreshToken))
            {
                return(BadRequest("refreshToken is not set."));
            }

            Models.DbModels.UserToken token = await _tokenStoreService.FindTokenAsync(refreshToken);

            if (token == null)
            {
                return(Unauthorized());
            }

            (string accessToken, string newRefreshToken, System.Collections.Generic.IEnumerable <Claim> claims) = await _tokenStoreService.CreateJwtTokens(token.User, refreshToken);

            //_antiforgery.RegenerateAntiForgeryCookies(claims);

            return(Ok(new AccessToken {
                access_token = accessToken, refresh_token = newRefreshToken
            }));
        }