in kotlin/app-homepage-react/client/src/app/service/spaceAuth.ts [6:28]
export default async function fetchSpaceUserToken(askForConsent: boolean = false, permissionScope: string = ""): Promise<UserTokenData | undefined> {
// read more about getting user token in Space documentation:
// https://www.jetbrains.com/help/space/application-homepage.html#getusertokenrequest-get-space-user-token
const response = await new Promise((resolve) => {
const channel = new MessageChannel();
channel.port1.onmessage = e => resolve(e.data);
window.parent.postMessage({
type: "GetUserTokenRequest",
permissionScope: permissionScope,
askForConsent: askForConsent
}, "*", [channel.port2]);
}) as GetUserTokenResponse;
if (response === null) {
return undefined;
}
return {
userToken: response.token,
spaceServerUrl: response.serverUrl
} as UserTokenData;
}