v195 - scopes

This commit is contained in:
Arseny Sazhin (via WeWeb) 2025-10-07 17:31:37 +03:00
parent 6d0917d83e
commit 0d3e320273
35 changed files with 58 additions and 48 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"cacheVersion":194,"page":{"id":"cf9f551f-e733-4934-a682-535575cb7c70","paths":{"en":"promo","default":"promo"},"cmsDataSetPath":null,"workflows":[]},"sections":{"4a2188f6-d98c-4150-9ba7-5918c72f3421":{"uid":"4a2188f6-d98c-4150-9ba7-5918c72f3421","linkId":"416695e7-e54e-4897-9f9a-befeb223f1b0","_state":{"style":{"default":{}}},"content":{"default":{"wwObjects":[],"_ww-layout_alignItems":"flex-start","_ww-layout_flexDirection":"column"}},"sectionBaseId":"99586bd3-2b15-4d6b-a025-6a50d07ca845","sectionTitle":"Section"}},"wwObjects":{},"collections":[],"variables":[],"workflows":[],"formulas":[],"libraryComponents":[]} {"cacheVersion":195,"page":{"id":"cf9f551f-e733-4934-a682-535575cb7c70","paths":{"en":"promo","default":"promo"},"cmsDataSetPath":null,"workflows":[]},"sections":{"4a2188f6-d98c-4150-9ba7-5918c72f3421":{"uid":"4a2188f6-d98c-4150-9ba7-5918c72f3421","linkId":"416695e7-e54e-4897-9f9a-befeb223f1b0","_state":{"style":{"default":{}}},"content":{"default":{"wwObjects":[],"_ww-layout_alignItems":"flex-start","_ww-layout_flexDirection":"column"}},"sectionBaseId":"99586bd3-2b15-4d6b-a025-6a50d07ca845","sectionTitle":"Section"}},"wwObjects":{},"collections":[],"variables":[],"workflows":[],"formulas":[],"libraryComponents":[]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"name":"Образовательная платформа Meetguru","short_name":"Образовательная платформа Meetguru","icons":[{"src":"images/48-favicon.png?_wwcv=194","type":"image/png","sizes":"48x48"},{"src":"images/72-favicon.png?_wwcv=194","type":"image/png","sizes":"72x72"},{"src":"images/96-favicon.png?_wwcv=194","type":"image/png","sizes":"96x96"},{"src":"images/128-favicon.png?_wwcv=194","type":"image/png","sizes":"128x128"},{"src":"images/144-favicon.png?_wwcv=194","type":"image/png","sizes":"144x144"},{"src":"images/152-favicon.png?_wwcv=194","type":"image/png","sizes":"152x152"},{"src":"images/192-favicon.png?_wwcv=194","type":"image/png","sizes":"192x192"},{"src":"images/256-favicon.png?_wwcv=194","type":"image/png","sizes":"256x256"},{"src":"images/384-favicon.png?_wwcv=194","type":"image/png","sizes":"384x384"},{"src":"images/512-favicon.png?_wwcv=194","type":"image/png","sizes":"512x512"}],"start_url":"/","display":"fullscreen","scope":"/","background_color":"#FFFFFF","theme_color":"#FFFFFF"} {"name":"Образовательная платформа Meetguru","short_name":"Образовательная платформа Meetguru","icons":[{"src":"images/48-favicon.png?_wwcv=195","type":"image/png","sizes":"48x48"},{"src":"images/72-favicon.png?_wwcv=195","type":"image/png","sizes":"72x72"},{"src":"images/96-favicon.png?_wwcv=195","type":"image/png","sizes":"96x96"},{"src":"images/128-favicon.png?_wwcv=195","type":"image/png","sizes":"128x128"},{"src":"images/144-favicon.png?_wwcv=195","type":"image/png","sizes":"144x144"},{"src":"images/152-favicon.png?_wwcv=195","type":"image/png","sizes":"152x152"},{"src":"images/192-favicon.png?_wwcv=195","type":"image/png","sizes":"192x192"},{"src":"images/256-favicon.png?_wwcv=195","type":"image/png","sizes":"256x256"},{"src":"images/384-favicon.png?_wwcv=195","type":"image/png","sizes":"384x384"},{"src":"images/512-favicon.png?_wwcv=195","type":"image/png","sizes":"512x512"}],"start_url":"/","display":"fullscreen","scope":"/","background_color":"#FFFFFF","theme_color":"#FFFFFF"}

View File

@ -1,4 +1,4 @@
const version = 194; const version = 195;
self.addEventListener('install', event => { self.addEventListener('install', event => {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log(`Service worker v${version} installed`); console.log(`Service worker v${version} installed`);

File diff suppressed because one or more lines are too long

View File

@ -173,6 +173,14 @@ type: 'string',
defaultValue: '', defaultValue: '',
}); });
// === ADDED: ensure 'email' scope helper ===
const ensureEmailScope = (scopes) => {
if (!scopes || typeof scopes !== 'string') return 'email';
const parts = scopes.split(/[,\s]+/).filter(Boolean);
if (!parts.includes('email')) parts.unshift('email');
return Array.from(new Set(parts)).join(','); // dedupe and normalize
};
// Computed properties // Computed properties
const buttonStyle = computed(() => { const buttonStyle = computed(() => {
return { return {
@ -248,7 +256,8 @@ responseMode: props.content?.backendTokenExchange === true
? VKID.ConfigResponseMode.Code ? VKID.ConfigResponseMode.Code
: VKID.ConfigResponseMode.Callback, : VKID.ConfigResponseMode.Callback,
source: VKID.ConfigSource.LOWCODE, source: VKID.ConfigSource.LOWCODE,
scope: props.content?.scopes || '', // === ADDED: make sure 'email' is always in scope ===
scope: ensureEmailScope(props.content?.scopes || ''),
}); });
// Create and render OneTap // Create and render OneTap
@ -328,7 +337,8 @@ const window = wwLib.getFrontWindow();
const oauthUrl = new URL('https://oauth.vk.com/authorize'); const oauthUrl = new URL('https://oauth.vk.com/authorize');
oauthUrl.searchParams.append('client_id', props.content?.appId); oauthUrl.searchParams.append('client_id', props.content?.appId);
oauthUrl.searchParams.append('redirect_uri', props.content?.redirectUri); oauthUrl.searchParams.append('redirect_uri', props.content?.redirectUri);
oauthUrl.searchParams.append('scope', props.content?.scopes || 'email'); // === CHANGED: force scopes to include email
oauthUrl.searchParams.append('scope', ensureEmailScope(props.content?.scopes));
oauthUrl.searchParams.append('response_type', 'code'); oauthUrl.searchParams.append('response_type', 'code');
oauthUrl.searchParams.append('v', '5.131'); // Ensure API version is set oauthUrl.searchParams.append('v', '5.131'); // Ensure API version is set
@ -552,7 +562,7 @@ const telegramCloseApp = () => {
if (isEditing.value) return; if (isEditing.value) return;
const window = wwLib.getFrontWindow(); const window = wwLib.getFrontWindow();
if (!window.Telegram || !window.Telegram.WebApp) return; if (!window.Telegram || !window.TeleApp) return;
try { try {
window.Telegram.WebApp.close(); window.Telegram.WebApp.close();

View File

@ -12,20 +12,20 @@
<link rel="icon" type="image/x-icon" href="favicon.ico?_wwcv={{cacheVersion}}" /> <link rel="icon" type="image/x-icon" href="favicon.ico?_wwcv={{cacheVersion}}" />
<link rel="manifest" href="manifest.json?_wwcv=194" /> <link rel="manifest" href="manifest.json?_wwcv=195" />
<meta name="theme-color" content="" /> <meta name="theme-color" content="" />
<link rel="apple-touch-icon" sizes="48x48" href="images/48-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="48x48" href="images/48-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="72x72" href="images/72-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="72x72" href="images/72-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="96x96" href="images/96-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="96x96" href="images/96-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="128x128" href="images/128-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="128x128" href="images/128-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="144x144" href="images/144-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="144x144" href="images/144-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="152x152" href="images/152-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="152x152" href="images/152-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="192x192" href="images/192-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="192x192" href="images/192-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="256x256" href="images/256-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="256x256" href="images/256-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="384x384" href="images/384-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="384x384" href="images/384-favicon.png?_wwcv=195">
<link rel="apple-touch-icon" sizes="512x512" href="images/512-favicon.png?_wwcv=194"> <link rel="apple-touch-icon" sizes="512x512" href="images/512-favicon.png?_wwcv=195">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'">
<link href="/fonts/Phosphor/font.css?_wwcv=194" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link href="/fonts/Phosphor/font.css?_wwcv=195" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'">
<link href="https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"> <link href="https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'">
<style>:root{ --ww-default-font-family: 'Raleway', sans-serif }</style> <style>:root{ --ww-default-font-family: 'Raleway', sans-serif }</style>
<style> <style>

File diff suppressed because one or more lines are too long