Attempted to use prebuilt oauth2 directive but decided to built my own for the experience