I struggle with oauth2 constantly. I think the biggest issue is that every implementation is slightly different than the next.