Skip to main content

How Feed Tokens Work

A feed token is a long random string that acts as a subscriber’s key to their private podcast feed. It’s embedded in their feed URL and validated every time their podcast app polls for new episodes.

What a Token Is

When a subscriber signs up through your membership plugin, Benecaster generates a token — 64 random hexadecimal characters — and ties it to that subscriber’s WordPress user account and membership tier. The token is then built into a private feed URL:

https://yoursite.com/podcast-feed/?token=a1b2c3d4e5f6...

This URL is what goes into the subscriber’s podcast app. The token itself is never stored in readable form — only a secure hash is kept in the database. The full token is generated once and delivered in the welcome email; it cannot be retrieved later, only reset.

What Happens on Each Feed Request

When a podcast app polls a subscriber’s feed URL, Benecaster:

  1. Extracts the token from the URL
  2. Hashes it and looks up the matching subscriber record
  3. Checks that the subscriber’s membership is currently active
  4. Determines the subscriber’s tier from the membership plugin
  5. Returns the compiled feed for that tier

The entire validation happens in milliseconds. From the subscriber’s perspective, it’s just a podcast feed.

If the token is valid and the membership is active, the subscriber receives their feed. If anything fails — invalid token, cancelled membership, revoked access — the feed returns empty. No error message is shown; the subscriber’s podcast app simply sees no episodes.

One Token per Subscriber per Show

Each subscriber has one active token per show. If a subscriber is enrolled in your membership plugin for multiple shows, they get a separate token for each.

When a subscriber’s membership tier changes — upgrade or downgrade — their existing token remains valid. The feed content changes to reflect the new tier; the URL does not change. Subscribers don’t need to update their podcast app when their tier changes.

The Token Is the Tier Record

Feed URLs include the subscriber’s tier slug in the URL path:

https://yoursite.com/podcast-feed/your-show-slug/gold/?token=a1b2c3d4e5f6...

The tier slug in the URL is for readability only. When a podcast app polls this URL, Benecaster reads the token and looks up the subscriber’s current tier from the token record — not from the URL. The tier slug in the path is not validated against the token.

This means a subscriber who upgrades from Silver to Gold gets Gold-tier episodes immediately on their next podcast app poll, even though their URL still shows silver. Their token record is updated to Gold; the URL path simply isn’t updated. Functionally, it makes no difference.

The tier slug in a URL path only has functional meaning when there is no token — for public feed access with no subscriber authentication.

Token Lifetime

A token is valid for as long as the subscriber’s membership is active. When a membership is cancelled or expires:

  • The token is not immediately deleted — it continues to work for a short grace period depending on your membership plugin’s configuration
  • Once the membership plugin reports the membership as inactive, the feed returns empty on the next request

Benecaster relies on your membership plugin to report membership status. If a subscriber’s membership lapses in your membership plugin but the plugin hasn’t fired the relevant event yet, Benecaster may not know immediately. Most membership plugins fire cancellation and expiry events promptly.

Token Security

Tokens are long enough to be unguessable — 64 hex characters gives 256 bits of entropy. There is no practical way to brute-force a valid token.

However, a token embedded in a URL can be shared. If a subscriber shares their feed URL with someone who isn’t a paying member, that person gets the same feed access. Benecaster does not technically prevent this, but token reset is available if a subscriber reports their URL has been shared or compromised.

Token reset generates a new token and immediately invalidates the old one. The subscriber receives a new feed URL. See Token Reset.

Tokens and Podcast Apps

Podcast apps treat a Benecaster feed URL like any other RSS feed URL. The app stores the URL and polls it on a schedule (typically every few hours). The token in the URL is passed to Benecaster on every poll — it’s not a one-time authentication, it’s checked every time.

This means if a token is reset, the subscriber’s podcast app will stop updating the moment it polls again with the old URL. They need to remove the old feed and add the new URL. This is the main friction point of token reset — worth communicating clearly to subscribers before they request it.