fix(auth): swap popup for new tab (#648)
This commit is contained in:
parent
2ecb1cdcba
commit
4c37beebb1
@ -18,29 +18,6 @@ export class NetlifyError {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const PROVIDERS = {
|
|
||||||
github: {
|
|
||||||
width: 960,
|
|
||||||
height: 600,
|
|
||||||
},
|
|
||||||
gitlab: {
|
|
||||||
width: 960,
|
|
||||||
height: 600,
|
|
||||||
},
|
|
||||||
gitea: {
|
|
||||||
width: 960,
|
|
||||||
height: 600,
|
|
||||||
},
|
|
||||||
bitbucket: {
|
|
||||||
width: 960,
|
|
||||||
height: 500,
|
|
||||||
},
|
|
||||||
email: {
|
|
||||||
width: 500,
|
|
||||||
height: 400,
|
|
||||||
},
|
|
||||||
} as const;
|
|
||||||
|
|
||||||
class Authenticator {
|
class Authenticator {
|
||||||
private site_id: string | null;
|
private site_id: string | null;
|
||||||
private base_url: string;
|
private base_url: string;
|
||||||
@ -55,7 +32,7 @@ class Authenticator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handshakeCallback(
|
handshakeCallback(
|
||||||
options: { provider?: keyof typeof PROVIDERS },
|
options: { provider?: string | undefined },
|
||||||
cb: (error: Error | NetlifyError | null, data?: User) => void,
|
cb: (error: Error | NetlifyError | null, data?: User) => void,
|
||||||
) {
|
) {
|
||||||
const fn = (e: { data: string; origin: string }) => {
|
const fn = (e: { data: string; origin: string }) => {
|
||||||
@ -69,7 +46,7 @@ class Authenticator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
authorizeCallback(
|
authorizeCallback(
|
||||||
options: { provider?: keyof typeof PROVIDERS },
|
options: { provider?: string | undefined },
|
||||||
cb: (error: Error | NetlifyError | null, data?: User) => void,
|
cb: (error: Error | NetlifyError | null, data?: User) => void,
|
||||||
) {
|
) {
|
||||||
const fn = (e: { data: string; origin: string }) => {
|
const fn = (e: { data: string; origin: string }) => {
|
||||||
@ -109,7 +86,7 @@ class Authenticator {
|
|||||||
|
|
||||||
authenticate(
|
authenticate(
|
||||||
options: {
|
options: {
|
||||||
provider?: keyof typeof PROVIDERS;
|
provider?: string | undefined;
|
||||||
scope?: string;
|
scope?: string;
|
||||||
login?: boolean;
|
login?: boolean;
|
||||||
beta_invite?: string;
|
beta_invite?: string;
|
||||||
@ -137,9 +114,6 @@ class Authenticator {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const conf = PROVIDERS[provider] || PROVIDERS.github;
|
|
||||||
const left = screen.width / 2 - conf.width / 2;
|
|
||||||
const top = screen.height / 2 - conf.height / 2;
|
|
||||||
window.addEventListener('message', this.handshakeCallback(options, cb), false);
|
window.addEventListener('message', this.handshakeCallback(options, cb), false);
|
||||||
let url = `${this.base_url}/${this.auth_endpoint}?provider=${options.provider}&site_id=${siteID}`;
|
let url = `${this.base_url}/${this.auth_endpoint}?provider=${options.provider}&site_id=${siteID}`;
|
||||||
if (options.scope) {
|
if (options.scope) {
|
||||||
@ -154,17 +128,13 @@ class Authenticator {
|
|||||||
if (options.invite_code) {
|
if (options.invite_code) {
|
||||||
url += '&invite_code=' + options.invite_code;
|
url += '&invite_code=' + options.invite_code;
|
||||||
}
|
}
|
||||||
this.authWindow = window.open(
|
this.authWindow = window.open(url, 'Netlify Authorization');
|
||||||
url,
|
|
||||||
'Netlify Authorization',
|
|
||||||
`width=${conf.width}, height=${conf.height}, top=${top}, left=${left}`,
|
|
||||||
);
|
|
||||||
this.authWindow?.focus();
|
this.authWindow?.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh(
|
refresh(
|
||||||
options: {
|
options: {
|
||||||
provider: keyof typeof PROVIDERS;
|
provider: string;
|
||||||
refresh_token?: string;
|
refresh_token?: string;
|
||||||
},
|
},
|
||||||
cb?: (error: Error | NetlifyError | null, data?: User) => void,
|
cb?: (error: Error | NetlifyError | null, data?: User) => void,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user