Does an access token expire?

As far as I know the access tokens don’t have an expiry date, and never need to be renewed. However, they can be invalidated if the application requests another token, the application is suspended, or the user de-authorizes your application. (Ex. You request 2 consecutive chat_login tokens, the first will be invalidated.) You can check if a token is invalid by making a request to https://api.twitch.tv/kraken/ with the token you’re testing in a header.