22 lines
618 B
TypeScript
22 lines
618 B
TypeScript
function toBase64Url(value: string) {
|
|
if (typeof Buffer !== 'undefined') {
|
|
return Buffer.from(value, 'utf8').toString('base64url');
|
|
}
|
|
|
|
return btoa(value)
|
|
.replace(/\+/g, '-')
|
|
.replace(/\//g, '_')
|
|
.replace(/=+$/g, '');
|
|
}
|
|
|
|
export function buildMessengerBotStartUrl(baseUrl: string, email: string) {
|
|
const normalizedEmail = email.trim().toLowerCase();
|
|
if (!baseUrl || !normalizedEmail) {
|
|
return '';
|
|
}
|
|
|
|
const payload = encodeURIComponent(toBase64Url(`login:${normalizedEmail}`));
|
|
const separator = baseUrl.includes('?') ? '&' : '?';
|
|
return `${baseUrl}${separator}start=${payload}`;
|
|
}
|