Acquires Canvas tokens through via OAuth, stores refresh tokens, and refreshes access tokens when they expire.