3using System.Threading.Tasks;
6using HotChocolate.Authorization;
7using HotChocolate.Execution;
8using HotChocolate.Subscriptions;
9using HotChocolate.Types;
20 [Authorize(ApplyPolicy.Validation)]
21 [GraphQLDescription(GraphQLDescription)]
27 public const string GraphQLDescription =
"Root Subscription type. Note that subscriptions are performed over Server Sent events.";
36 ArgumentNullException.ThrowIfNull(authenticationContext);
37 return $
"SessionInvalidated.{authenticationContext.SessionId}";
49 [Service] HotChocolate.Subscriptions.ITopicEventReceiver receiver,
52 CancellationToken cancellationToken)
54 ArgumentNullException.ThrowIfNull(receiver);
55 ArgumentNullException.ThrowIfNull(invalidationTracker);
58 invalidationTracker.TrackSession(authenticationContext);
69 => sessionInvalidationReason;
Root type for GraphQL subscriptions.
const string GraphQLDescription
Description to show on the Subscription type.
ValueTask< ISourceStream< SessionInvalidationReason > > SessionInvalidatedStream([Service] HotChocolate.Subscriptions.ITopicEventReceiver receiver, [Service] ISessionInvalidationTracker invalidationTracker, [Service] IAuthenticationContext authenticationContext, CancellationToken cancellationToken)
ISourceStream for SessionInvalidated(SessionInvalidationReason).
static string SessionInvalidatedTopic(IAuthenticationContext authenticationContext)
Gets the topic name for the login session represented by a given authenticationContext .
SessionInvalidationReason SessionInvalidated([EventMessage] SessionInvalidationReason sessionInvalidationReason)
Receive a SessionInvalidationReason immediately before the current login session is invalidated.
For creating and accessing authentication contexts.
Handles invalidating user sessions.
SessionInvalidationReason
Reasons TGS may invalidate a user's login session.