コード例 #1
0
        public async Task <IActionResult> RevokeRefreshToken(RefreshTokenResourceModel model)
        {
            var result = await authService.RevokeRefreshToken(model);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }
            return(Ok(result));
        }
コード例 #2
0
        public async Task <BaseResponse <AccessToken> > RevokeRefreshToken(RefreshTokenResourceModel model)
        {
            var result = await userService.RevokeRefreshToken(model.RefreshToken);

            if (!result)
            {
                return(new BaseResponse <AccessToken>("Fail couldnt revoke refreshtoken"));
            }
            //refreshtoken silinirse eğer bos accesstoken dönecek bunu daha sonra düzenleyeceğim n****s
            return(new BaseResponse <AccessToken>(new AccessToken()));
        }
コード例 #3
0
        public async Task <BaseResponse <AccessToken> > CreateAccessTokenWithRefreshToken(RefreshTokenResourceModel model)
        {
            var user = await userService.GetUserByRefreshToken(model.RefreshToken);

            if (!user.Success)
            {
                return(new BaseResponse <AccessToken>(user.Message));
            }

            var token = tokenHandler.CreateAccessToken(user.Result.Item1);

            //yeni token ile refreshtoken claimleri güncellenecek
            Claim refreshTokenClaim   = new Claim("refreshToken", token.RefreshToken);
            Claim refreshTokenEndDate = new Claim("refreshTokenEndDate", DateTime.Now.AddMinutes(tokenOptions.RefreshTokenExpiration).ToString());

            var refReplace = await userManager.ReplaceClaimAsync(user.Result.Item1, user.Result.Item2.FirstOrDefault(c => c.Type == "refreshToken"), refreshTokenClaim);

            if (!refReplace.Succeeded)
            {
                return(new BaseResponse <AccessToken>("refreshtoken güncellenemedi"));
            }
            var refDateReplace = await userManager.ReplaceClaimAsync(user.Result.Item1, user.Result.Item2.FirstOrDefault(c => c.Type == "refreshTokenEndDate"), refreshTokenEndDate);

            if (!refDateReplace.Succeeded)
            {
                return(new BaseResponse <AccessToken>("refreshtokenDate güncellenemedi"));
            }

            return(new BaseResponse <AccessToken>(token));
        }