feat: make default scopes of Auth APIs configurable

This commit is contained in:
Jesko Steinberg
2020-10-12 15:06:27 +02:00
parent a3fdac9b4a
commit 34a94c9a58
5 changed files with 27 additions and 17 deletions
@@ -27,6 +27,7 @@ type CreateOptions = {
discoveryApi: DiscoveryApi;
oauthRequestApi: OAuthRequestApi;
defaultScopes?: string[];
environment?: string;
provider?: AuthProvider & { id: string };
};
@@ -43,13 +44,14 @@ class Auth0Auth {
environment = 'development',
provider = DEFAULT_PROVIDER,
oauthRequestApi,
defaultScopes = ['openid', `email`, `profile`],
}: CreateOptions): typeof auth0AuthApiRef.T {
return OAuth2.create({
discoveryApi,
oauthRequestApi,
provider,
environment,
defaultScopes: ['openid', `email`, `profile`],
defaultScopes,
});
}
}
@@ -27,6 +27,7 @@ type CreateOptions = {
discoveryApi: DiscoveryApi;
oauthRequestApi: OAuthRequestApi;
defaultScopes?: string[];
environment?: string;
provider?: AuthProvider & { id: string };
};
@@ -43,13 +44,14 @@ class GitlabAuth {
environment = 'development',
provider = DEFAULT_PROVIDER,
oauthRequestApi,
defaultScopes = ['read_user'],
}: CreateOptions): typeof gitlabAuthApiRef.T {
return OAuth2.create({
discoveryApi,
oauthRequestApi,
provider,
environment,
defaultScopes: ['read_user'],
defaultScopes,
});
}
}
@@ -27,6 +27,7 @@ type CreateOptions = {
discoveryApi: DiscoveryApi;
oauthRequestApi: OAuthRequestApi;
defaultScopes?: string[];
environment?: string;
provider?: AuthProvider & { id: string };
};
@@ -37,25 +38,26 @@ const DEFAULT_PROVIDER = {
icon: GoogleIcon,
};
const SCOPE_PREFIX = 'https://www.googleapis.com/auth/';
class GoogleAuth {
static create({
discoveryApi,
oauthRequestApi,
environment = 'development',
provider = DEFAULT_PROVIDER,
defaultScopes = [
'openid',
`${SCOPE_PREFIX}userinfo.email`,
`${SCOPE_PREFIX}userinfo.profile`,
],
}: CreateOptions): typeof googleAuthApiRef.T {
const SCOPE_PREFIX = 'https://www.googleapis.com/auth/';
return OAuth2.create({
discoveryApi,
oauthRequestApi,
provider,
environment,
defaultScopes: [
'openid',
`${SCOPE_PREFIX}userinfo.email`,
`${SCOPE_PREFIX}userinfo.profile`,
],
defaultScopes,
scopeTransform(scopes: string[]) {
return scopes.map(scope => {
if (scope === 'openid') {
@@ -28,6 +28,7 @@ type CreateOptions = {
discoveryApi: DiscoveryApi;
oauthRequestApi: OAuthRequestApi;
defaultScopes?: string[];
environment?: string;
provider?: AuthProvider & { id: string };
};
@@ -44,19 +45,20 @@ class MicrosoftAuth {
provider = DEFAULT_PROVIDER,
oauthRequestApi,
discoveryApi,
defaultScopes = [
'openid',
'offline_access',
'profile',
'email',
'User.Read',
],
}: CreateOptions): typeof microsoftAuthApiRef.T {
return OAuth2.create({
discoveryApi,
oauthRequestApi,
provider,
environment,
defaultScopes: [
'openid',
'offline_access',
'profile',
'email',
'User.Read',
],
defaultScopes,
});
}
}
@@ -27,6 +27,7 @@ type CreateOptions = {
discoveryApi: DiscoveryApi;
oauthRequestApi: OAuthRequestApi;
defaultScopes?: string[];
environment?: string;
provider?: AuthProvider & { id: string };
};
@@ -55,13 +56,14 @@ class OktaAuth {
environment = 'development',
provider = DEFAULT_PROVIDER,
oauthRequestApi,
defaultScopes = ['openid', 'email', 'profile', 'offline_access'],
}: CreateOptions): typeof oktaAuthApiRef.T {
return OAuth2.create({
discoveryApi,
oauthRequestApi,
provider,
environment,
defaultScopes: ['openid', 'email', 'profile', 'offline_access'],
defaultScopes,
scopeTransform(scopes) {
return scopes.map(scope => {
if (OKTA_OIDC_SCOPES.has(scope)) {