MCPcopy Index your code
hub / github.com/mailvelope/mailvelope / getAccessToken

Function getAccessToken

src/modules/gmail.js:117–134  ·  view source on GitHub ↗
({email, scopes = []})

Source from the content-addressed store, hash-verified

115}
116
117export async function getAccessToken({email, scopes = []}) {
118 scopes = deDup([...GMAIL_SCOPES_DEFAULT, ...scopes]);
119 const storedTokens = await mvelo.storage.get(GOOGLE_OAUTH_STORE);
120 const storedToken = storedTokens?.[email];
121 if (!storedToken || !scopes.every(scope => storedToken.scope.split(' ').includes(scope))) {
122 return;
123 }
124 if (checkStoredToken(storedToken)) {
125 return storedToken.access_token;
126 }
127 if (storedToken.refresh_token) {
128 const refreshedToken = await getRefreshedAccessToken(storedToken.refresh_token);
129 if (refreshedToken.access_token) {
130 await storeAuthData(email, buildAuthMeta(refreshedToken));
131 return refreshedToken.access_token;
132 }
133 }
134}
135
136function checkStoredToken(storedData) {
137 return storedData.access_token && (storedData.access_token_exp >= new Date().getTime());

Callers

nothing calls this directly

Calls 6

deDupFunction · 0.90
checkStoredTokenFunction · 0.85
getRefreshedAccessTokenFunction · 0.85
storeAuthDataFunction · 0.85
buildAuthMetaFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected