您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Я не придумал описание
// ==UserScript== // @name Автовход // @namespace http://tampermonkey.net/ // @version 1.1 // @description Я не придумал описание // @author dayanabiliyorum // @match https://*/oauth/authorize/* // @icon https://www.google.com/s2/favicons?sz=64&domain=bitrix24.net // @grant GM.xmlHttpRequest // @license MIT // ==/UserScript== const token = ''; var portalUrl = ''; var login = ''; var password = ''; (function() { 'use strict'; const button = document.createElement("button"); button.setAttribute('id', 'choose-all'); button.classList.add('ui-btn', 'ui-btn-success'); button.textContent = 'Автовход'; document.querySelector('.b24-network-auth-cover-title').after(button); portalUrl = new URLSearchParams(window.location.search).get('redirect_uri'); button.addEventListener('click', function () { let changeAccountButton = getElementByInnerHtml('button', 'Сменить аккаунт'); if (changeAccountButton !== null) { changeAccountButton.click(); } getAuthData() .then(() => setLogin(login)) .then(() => delay(1000)) .then(() => setPassword(password)); }) })(); function getAuthData() { return new Promise((resolve, reject) => { GM.xmlHttpRequest ({ method: "POST", url: 'https://sekvid.ru/up/uchet-app/token-access/get-auth-data?token=8d2d1613-a2e7-49e7-95aa-4fcf1962b001', data: JSON.stringify({token: token, url: portalUrl}), headers: { "Content-Type": "application/json" }, onload: function (response) { let authData = JSON.parse(response.response); login = authData.login; password = authData.password; resolve(); } }); }); } function setLogin(login) { return new Promise((resolve, reject) => { insertTo(login, 'login').then(() => clickSubmit()); resolve(); }); } function setPassword(password) { return new Promise((resolve, reject) => { insertTo(password, 'password').then(() => clickSubmit()); resolve(); }); } function insertTo(text = '', fieldId) { var changeEvent = new Event('change', { bubbles: true, cancelable: true, }); return new Promise((resolve, reject) => { if (document.querySelector('#' + fieldId) !== null) { document.querySelector('#' + fieldId).value = text; document.querySelector('#' + fieldId).dispatchEvent(changeEvent); delay(500).then(() => resolve()); } else { resolve(); } }); } function clickSubmit() { document.querySelector('button[data-action="submit"]').click(); } function delay(time) { return new Promise(resolve => setTimeout(resolve, time)); } function getElementByInnerHtml(elementName, html) { for (let element of document.querySelectorAll(elementName)) { if (element.innerHTML == html) { return element } } return null; }