IMPORTANT:
authorize() will end up redirecting you to the authorization server.
This means that you should not add anything to the returned promise chain.
Any code written directly after the authorize() call might not be executed
due to that redirect!
Starts the SMART Launch Sequence.