示例#1
0
        public async Task <Token> RenewToken(
            TokenValidationResult validationResult,
            CancellationToken cancellationToken)
        {
            var token  = validationResult.Token;
            var result = await Client.Request(token, cancellationToken);

            if (result.Succeeded)
            {
                _options.OnTokenRenewed?.Invoke(result.Token);
            }

            return(result.Token);
        }
示例#2
0
        /// <inheritdoc />
        public TokenValidationResult Validate(Token token, ISystemClock clock)
        {
            if (token == null)
            {
                throw new ArgumentNullException(nameof(token));
            }

            if (IsMissingToken(token))
            {
                return(TokenValidationResult.IsMissingToken(token));
            }

            if (HasTokenExpired(token.ExpiresAt, clock))
            {
                return(TokenValidationResult.TokenExpired(token));
            }
            return(TokenValidationResult.Valid(token));
        }