Update pages.html
Browse files- pages.html +43 -82
pages.html
CHANGED
@@ -1158,96 +1158,57 @@ z-index: 1000; /* Убедитесь, что кнопка находится п
|
|
1158 |
|
1159 |
|
1160 |
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
// Удаляем параметр из URL
|
1170 |
-
urlParams.delete('code');
|
1171 |
-
window.history.replaceState({}, document.title, `${window.location.pathname}?${urlParams.toString()}`);
|
1172 |
-
}
|
1173 |
-
console.log('Code:', code); // Выводим значение ключа в консоль
|
1174 |
-
return code;
|
1175 |
-
}
|
1176 |
-
|
1177 |
-
// Функция для получения информации о пользователе через наш сервер
|
1178 |
-
function getVkUserInfo(token) {
|
1179 |
-
const serverUrl = 'https://dmtuit-psy-vk.hf.space/get_vk_user_info'; // URL нашего сервера
|
1180 |
-
const apiUrl = `${serverUrl}?token=${token}`;
|
1181 |
-
console.log('API URL:', apiUrl); // Выводим URL в консоль
|
1182 |
-
|
1183 |
-
return fetch(apiUrl, {
|
1184 |
-
method: 'GET',
|
1185 |
-
headers: {
|
1186 |
-
'Content-Type': 'application/json' // Указываем тип содержимого
|
1187 |
-
}
|
1188 |
-
})
|
1189 |
-
.then(response => {
|
1190 |
-
if (!response.ok) {
|
1191 |
-
throw new Error('Network response was not ok ' + response.statusText);
|
1192 |
-
}
|
1193 |
-
return response.json();
|
1194 |
-
})
|
1195 |
-
.then(data => {
|
1196 |
-
if (data.user_id) {
|
1197 |
-
console.log('User ID:', data.user_id);
|
1198 |
-
return data.user_id;
|
1199 |
-
} else {
|
1200 |
-
throw new Error('Failed to get user info:', data);
|
1201 |
-
}
|
1202 |
});
|
1203 |
-
}
|
1204 |
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
method: 'POST', // Указываем метод запроса
|
1212 |
-
headers: {
|
1213 |
-
'Content-Type': 'application/x-www-form-urlencoded' // Указываем тип содержимого
|
1214 |
},
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
throw new Error('Ошибка HTTP: ' + response.status); // Выбрасываем ошибку
|
1220 |
-
}
|
1221 |
-
return response.json(); // Преобразуем ответ в JSON
|
1222 |
})
|
1223 |
-
.
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1229 |
});
|
1230 |
}
|
1231 |
|
1232 |
-
|
1233 |
-
|
1234 |
-
for (const [iframeId, iframeData] of Object.entries(data)) {
|
1235 |
-
const iframe = document.getElementById(iframeId);
|
1236 |
-
if (iframe) {
|
1237 |
-
iframe.src = iframeData.file;
|
1238 |
-
}
|
1239 |
-
}
|
1240 |
}
|
1241 |
-
|
1242 |
-
// Вызов функций при загрузке страницы
|
1243 |
-
document.addEventListener('DOMContentLoaded', () => {
|
1244 |
-
const code = getAndRemoveCodeFromUrl();
|
1245 |
-
if (code) {
|
1246 |
-
getVkUserInfo(code)
|
1247 |
-
.then(userId => sendRequestWithUserId(userId))
|
1248 |
-
.catch(error => console.error('Error:', error));
|
1249 |
-
}
|
1250 |
-
});
|
1251 |
</script>
|
1252 |
|
1253 |
|
|
|
1158 |
|
1159 |
|
1160 |
|
1161 |
+
<script src="https://unpkg.com/@vkid/sdk@<3.0.0/dist-sdk/umd/index.js"></script>
|
1162 |
+
<script type="text/javascript">
|
1163 |
+
if ("VKIDSDK" in window) {
|
1164 |
+
const VKID = window.VKIDSDK;
|
1165 |
+
VKID.Config.init({
|
1166 |
+
"app": 52295022,
|
1167 |
+
"redirectUrl": "https://dmtuit-psy-vk.hf.space/pages",
|
1168 |
+
"source": VKID.ConfigSource.LOWCODE,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1169 |
});
|
|
|
1170 |
|
1171 |
+
const oneTap = new VKID.OneTap();
|
1172 |
+
oneTap.render({
|
1173 |
+
"container": document.getElementById('vkid-container'),
|
1174 |
+
"showAlternativeLogin": true,
|
1175 |
+
"styles": {
|
1176 |
+
"width": 360
|
|
|
|
|
|
|
1177 |
},
|
1178 |
+
"oauthList": [
|
1179 |
+
"ok_ru",
|
1180 |
+
"mail_ru"
|
1181 |
+
]
|
|
|
|
|
|
|
1182 |
})
|
1183 |
+
.on(VKID.WidgetEvents.ERROR, vkidOnError)
|
1184 |
+
.on(VKID.OneTapInternalEvents.LOGIN_SUCCESS, function (payload) {
|
1185 |
+
const code = payload.code;
|
1186 |
+
const deviceId = payload.device_id;
|
1187 |
+
|
1188 |
+
// Отправляем code и deviceId на сервер для обмена на access_token
|
1189 |
+
fetch('/exchange_code', {
|
1190 |
+
method: 'POST',
|
1191 |
+
headers: {
|
1192 |
+
'Content-Type': 'application/json'
|
1193 |
+
},
|
1194 |
+
body: JSON.stringify({ code, deviceId })
|
1195 |
+
})
|
1196 |
+
.then(response => response.json())
|
1197 |
+
.then(data => {
|
1198 |
+
if (data.error) {
|
1199 |
+
console.error('Error from server:', data.error);
|
1200 |
+
} else {
|
1201 |
+
console.log('User Info:', data);
|
1202 |
+
// Здесь можно обработать полученные данные о пользователе
|
1203 |
+
}
|
1204 |
+
})
|
1205 |
+
.catch(vkidOnError);
|
1206 |
});
|
1207 |
}
|
1208 |
|
1209 |
+
function vkidOnError(error) {
|
1210 |
+
console.error('VKID Error:', error);
|
|
|
|
|
|
|
|
|
|
|
|
|
1211 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1212 |
</script>
|
1213 |
|
1214 |
|