Getting Access-Control-Allow-Headers in preflight error

I don’t know how angular works, but your request contains a custom RefreshToken header, which isn’t a whitelisted header (list of which is seen in the Access-Control-Allow-Headers response header of the OPTIONS request).

You need to make your CORS requests only contain the headers you specify.

The headers allowed for CORS requests by Twitch API (both kraken and helix):

Access-Control-Allow-Headers: Accept, Accept-Language, Authorization, Client-Id, Twitch-Api-Token, X-Forwarded-Proto, X-Requested-With, X-Csrf-Token, Content-Type, X-Device-Id

It doesn’t support jsonp, it does support CORS.