Fixed duplicate oauth fetch along with DRY improvement #1858

Fixes the duplicate Oauth issue.
Again, seems like you want to get the expiryTime and tokens atomically.  Perhaps they should be combined into a single dedicated data structure, like OAuthInfo or something like that?