Connected App Still Has Access to Your Twitch Account
A disconnected app can keep working until its token is revoked, not just its password changed.
Is this your situation?
You removed an app's access on Twitch, but it still seems to be acting on your account. You are checking whether the connection actually ended or whether something else is going on.
The short answer
Access and refresh tokens can become invalid if the token expires. A token can become invalid if the user changes their password, or if the user disconnects the app from their connections settings. Access and refresh tokens can become invalid if you disconnect the app by going to your account's /settings/connections page and clicking Disconnect next to the app's name.
What you see, and why
| Symptom | Cause |
|---|---|
| The app still posts, reads, or acts on the account after you thought you removed it. | The access token can become invalid if the token expires. |
| You changed your password but the app kept working. | Access and refresh tokens can become invalid if the user changes their password. |
| The app's requests suddenly stop working. | If a token becomes invalid, API requests return HTTP status code 401 Unauthorized. |
Check these first
- Check your connections settings. The token becomes invalid when you disconnect the app from the connections page and click Disconnect next to its name.Verify: Confirm the app's name no longer appears under Other Connections.
- Check whether the app still works. An invalid token causes API requests to return HTTP status code 401 Unauthorized.Verify: Look at whether the app shows errors.
- Check the token type the app uses. Apps that call APIs not requiring your permission use app access tokens.Verify: Review whether the app ever asked you to authorize it.
How Twitch handles this
- Twitch APIs use OAuth 2.0 access tokens to access resources.
- Access tokens, refresh tokens, and client secrets should be treated like a password and safeguarded.
- Access and refresh tokens can become invalid if the token expires or if the user disconnects the app.
- Third-party apps that call the Twitch APIs and maintain an OAuth session must call the /validate endpoint to verify the access token is still valid.
Which path applies to you?
- Did you disconnect the app from your Connections settings? Disconnecting the app invalidates its token.
- Is the app still making requests after disconnecting? An invalid token causes its API requests to return HTTP status code 401 Unauthorized.
- Did you only change your password? Access and refresh tokens can become invalid if the user changes their password.
- Do you want to confirm the token's state directly? An app maintaining an OAuth session must call the /validate endpoint to verify the access token is still valid.
Step by step: finding the cause
- Check your current connections. Review whether the app is still listed in your account connections.Confirm: Check whether the app's name still appears under Other Connections.
- Disconnect the app if it is still listed. Access and refresh tokens can become invalid if you disconnect the app.Where: /settings/connectionsConfirm: Check that the app no longer appears in the list.
- Give the token time to be checked. An app that maintains an OAuth session is required to call the /validate endpoint to verify the access token is still valid.Confirm: Check whether the app's behaviour changes after some time has passed.
- Look at what the app does when it fails. If the token is invalid, its API requests return HTTP status code 401 Unauthorized.Confirm: Check any error messages or logs the app shows you.
- Identify the token type involved. Apps calling APIs that don't require your permission use app access tokens rather than user access tokens.Confirm: Check whether the app ever asked you to authorize it initially.
- Decide whether a new token must be requested. When a token becomes invalid, a new access token must be obtained using the appropriate flow for the app.Confirm: Check whether the app prompts you to reauthorize it.
Common mistakes
- Assuming a password change ends every connection. Tokens can become invalid if the user changes their password.Why it happens: Access and refresh tokens can become invalid if the user changes their password.
- Never actually disconnecting the app. A token can become invalid if the user disconnects the app from the Connections page.Why it happens: Disconnecting requires going to the account's /settings/connections page and clicking Disconnect next to the app's name.
- Expecting instant failure after disconnecting. An app maintaining an OAuth session must call the /validate endpoint to verify the token is still valid.Why it happens: Apps that maintain an OAuth session must call the /validate endpoint to verify the token is still valid.
Quick reference
| Situation | What applies |
|---|---|
| Token expired | Access and refresh tokens can become invalid if the token expires. |
| Password changed | Access and refresh tokens can become invalid if the user changes their password. |
| Twitch revokes it | Access and refresh tokens can become invalid if Twitch revokes the token. |
| App disconnected | Disconnecting the app is done by going to /settings/connections and clicking Disconnect next to its name. |
| Token invalid | API requests return HTTP status code 401 Unauthorized. |
| Needs new token | A new access token must be obtained using the appropriate flow for the app. |
| App maintaining a session | Not stated by Twitch |
| Revoking a token directly | An app can revoke an access token by sending an HTTP POST request to the revoke endpoint. |
Keeping track of who has access
Delvia helps you see which connections and tokens still have access once you have diagnosed a connected app that outlasted a password change or disconnect attempt.
Was this helpful?