/// <inheritdoc />
        protected override async Task <TUserToken> FindTokenAsync(TUser user, string loginProvider, string name,
                                                                  CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();
            ThrowIfDisposed();
            var token = await UserTokensRecord.FindTokenAsync(user.Id, loginProvider, name);

            return(token);
        }
 /// <inheritdoc />
 protected override async Task RemoveUserTokenAsync(TUserToken token)
 {
     UserTokens ??= (await UserTokensRecord.GetTokensAsync(token.UserId)).ToList();
     UserTokens.Remove(token);
 }
 /// <inheritdoc />
 protected override async Task AddUserTokenAsync(TUserToken token)
 {
     token.ThrowIfNull(nameof(token));
     UserTokens ??= (await UserTokensRecord.GetTokensAsync(token.UserId)).ToList();
     UserTokens.Add(token);
 }