public async Task <bool> Logout(string userId, string refreshToken) { await _tokenService.RevokeUserBearerTokensAsync(userId, refreshToken); _antiForgeryCookieService.DeleteAntiForgeryCookies(); return(true); }
public async Task <bool> LogoutAsync(string refreshToken) { var claimsIdentity = _httpContextAccessor.HttpContext.User.Identity as ClaimsIdentity; var userIdValue = claimsIdentity.FindFirst(ClaimTypes.UserData)?.Value; await _userTokenStorageService.RevokeUserBearerTokensAsync(userIdValue, refreshToken); await _unitOfWork.SaveChangesAsync(); _antiForgeryCookieService.DeleteAntiForgeryCookies(); return(true); }
public async Task <IActionResult> logout() { try { await _userService.Logout(); _antiforgery.DeleteAntiForgeryCookies(); //HttpContext.Session.Clear(); return(Json(new HttpResult() { Success = true, Data = null, Message = "با موفقیت انجام شد" })); } catch (Exception ex) { return(Json(new HttpResult() { Success = false, Data = null, Message = "مشکلی در انجام عملیات وجود دارد" })); } }
public async Task <bool> Logout(string refreshToken) { var claimsIdentity = this.User.Identity as ClaimsIdentity; var userIdValue = claimsIdentity.FindFirst(ClaimTypes.UserData)?.Value; // The Jwt implementation does not support "revoke OAuth token" (logout) by design. // Delete the user's tokens from the database (revoke its bearer token) await _tokenStoreService.RevokeUserBearerTokensAsync(userIdValue, refreshToken); _antiforgery.DeleteAntiForgeryCookies(); return(true); }
/// <summary> /// The Jwt implementation does not support "revoke OAuth token" (logout) by design. /// Delete the user's tokens from the database (revoke its bearer token) /// </summary> public async Task SignOutAsync() { await _tokenManager.RevokeTokensAsync(_session.UserId); _antiForgery.DeleteAntiForgeryCookies(); }