createAuthorizationCode(userId: string,request: AuthorizeRequest): Promise<string>
Records user userId's consent to sign in to the client of request, and
returns where to send them: the client's callback page with a code, which
the client trades within a minute (exchangeCode). The grant lasts
until they withdraw it, so the page asks no more.
request: AuthorizeRequest