|
import getCurrentUser from '../common/get-current-user.js'; |
|
|
|
const verifyCredentials = async ($) => { |
|
const oauthRedirectUrlField = $.app.auth.fields.find( |
|
(field) => field.key == 'oAuthRedirectUrl' |
|
); |
|
const redirectUri = oauthRedirectUrlField.value; |
|
const { data } = await $.http.post(`https://oauth2.googleapis.com/token`, { |
|
client_id: $.auth.data.clientId, |
|
client_secret: $.auth.data.clientSecret, |
|
code: $.auth.data.code, |
|
grant_type: 'authorization_code', |
|
redirect_uri: redirectUri, |
|
}); |
|
|
|
await $.auth.set({ |
|
accessToken: data.access_token, |
|
tokenType: data.token_type, |
|
}); |
|
|
|
const currentUser = await getCurrentUser($); |
|
|
|
const { displayName } = currentUser.names.find( |
|
(name) => name.metadata.primary |
|
); |
|
const { value: email } = currentUser.emailAddresses.find( |
|
(emailAddress) => emailAddress.metadata.primary |
|
); |
|
|
|
await $.auth.set({ |
|
clientId: $.auth.data.clientId, |
|
clientSecret: $.auth.data.clientSecret, |
|
scope: $.auth.data.scope, |
|
idToken: data.id_token, |
|
expiresIn: data.expires_in, |
|
refreshToken: data.refresh_token, |
|
resourceName: currentUser.resourceName, |
|
screenName: `${displayName} - ${email}`, |
|
}); |
|
}; |
|
|
|
export default verifyCredentials; |
|
|