public async Task ResultFilterAsync(AuthResultContext authContext, CancellationToken token = default) { if (UseTokenCookie && authContext.Result.Cookies.All(x => x.Name != Keywords.TokenCookie)) { var accessToken = CreateJwtBearerToken(authContext.Request, authContext.Session); await authContext.Request.RemoveSessionAsync(authContext.Session.Id, token); authContext.Result.AddCookie(authContext.Request, new Cookie(Keywords.TokenCookie, accessToken, Cookies.RootPath) { HttpOnly = true, Secure = authContext.Request.IsSecureConnection, Expires = DateTime.UtcNow.Add(ExpireTokensIn), }); } if (UseTokenCookie && authContext.Result.Cookies.All(x => x.Name != Keywords.RefreshTokenCookie) && EnableRefreshToken()) { var refreshToken = CreateJwtRefreshToken(authContext.Request, authContext.Session.Id, ExpireRefreshTokensIn); authContext.Result.AddCookie(authContext.Request, new Cookie(Keywords.RefreshTokenCookie, refreshToken, Cookies.RootPath) { HttpOnly = true, Secure = authContext.Request.IsSecureConnection, Expires = DateTime.UtcNow.Add(ExpireRefreshTokensIn), }); } JwtUtils.NotifyJwtCookiesUsed(authContext.Result); }
public static IHttpResult SuccessAuthResult(this IHttpResult result, IServiceBase service, IAuthSession session) { var feature = HostContext.GetPlugin <AuthFeature>(); if (result != null && feature != null) { var hasAuthResponseFilter = feature.AuthProviders.Any(x => x is IAuthResponseFilter); if (hasAuthResponseFilter) { var ctx = new AuthResultContext { Result = result, Service = service, Session = session, Request = service.Request, }; foreach (var responseFilter in feature.AuthProviders.OfType <IAuthResponseFilter>()) { responseFilter.ResultFilterAsync(ctx).Wait(); } } } return(result); }