Google OAuth2 X
Consent screen
Simply extend the GoogleAuth
class and override the openConsentScreen_()
method, which should return a Promise<string redirectedUrl>
.
Consent screen for electron app
const GoogleAuth = ;const shell = ; { return { let server = http; let port = serverport; let endpoint = this; shell; // electron }; }
Consent screen for node app
Replace electron.shell
with child_process.exec
:
const GoogleAuth = ;const exec = ; { return { let server = http; let port = serverport; let endpoint = this; // windows }; }
API
new GoogleAuth(string credentialsPath, string tokensPath, string scope)
Promise<string token> getToken()
- Return the access token if there is one.
- Otherwise, refresh the access token using the refresh token if there is one.
- Otherwise, retrieve a refresh token through a consent screen.
Promise<string token> getRefreshedToken(bool force = false)
Same as getToken
but will skip directly to step 2. If force
is false
(default), then multiple calls to getRefreshedToken
while a refresh is in progress are safe; i.e. they will not refresh the token multiple times.
Promise<string token> getCleanToken(bool force = false)
Same as getToken
but will skip directly to step 3. If force
is false
(default), then multiple calls to getCleanToken
while a clean is in progress are safe; i.e. they will not open multiple consent screens or fetch multiple refresh tokens. This can be used to switch authentication accounts.
Example Usage
let youtubeAuth = 'resources/credentials.json' 'appWorkingDir/tokens.json' 'https://www.googleapis.com/auth/youtube'; let main = async { console; // xyz console; // xyz console; // uvw console; // uvw console; // uvw console; // rst console; // opq console; // opq};;