Invalid token even with the authentication process going as planned

You did exchange the ?code for a token?

The ?code is not a token you have to exchange it first

See step 3

3) On your server, get an access token by making this request:

POST https://id.twitch.tv/oauth2/token
    ?client_id=<your client ID>
    &client_secret=<your client secret>
    &code=<authorization code received above>
    &grant_type=authorization_code
    &redirect_uri=<your registered redirect URI>