Рубрики
ASP.NET Разработка

Автоматическая авторизация в Swagger при запуске в режиме отладки

Если Вам тоже надоело постоянно нажимать действия связанные с процессом получения «токена» в Swagger, ниже один из Вариантов решения этой задачи, решение не претендует на звание самого изящного или лучшего но определенно имеет шансы на существование. Суть решения состоит в внедрение js файла в и последующей его интерпретации:

  1. Открываем Startup.cs
  2. Добавляем ссылку на наш будущий js файлик
     c.InjectJavascript("../js/CustomSwagger.js");

3. Добавляем файл в wwwroot с Вашим путем.

Проверяем работоспособность написав простую команду:

console.log(«work»);

Если скрипт подключился значит двигаемся дальше 😉

document.addEventListener('DOMContentLoaded', function (event) {
    setTimeout(login, 1000);
})

function login() {
    document.getElementsByClassName("btn authorize unlocked")[0].click();
    var doc = document.getElementsByClassName("auth-container");
    doc[0].getElementsByTagName("input")[0].select();
    doc[0].getElementsByTagName("input")[0].value = "bearer I6ImQyZDFkNTY3LTMzYjItNGEyZi1hZjdlLTcwZWY1MzIxYjZkOCIsImV4cCI6MTYxNTI4MDYzOSwiaXNzIjoiRmluZE1lIiwiYXVkIjoiRmluZE1lX2F1ZGllbmNlIn0.c-cVpN433lpOQDLsFKvaI3d5Tp0_qsfi45xGfTEduRs";
    let event = new Event('input', { bubbles: true });
    // hack React15
    event.simulated = true;
    doc[0].getElementsByTagName("input")[0].dispatchEvent(event);
    document.getElementsByClassName("btn modal-btn auth authorize button")[0].click();
    document.getElementsByClassName("btn modal-btn auth btn-done button")[0].click();
}

Выше представлен полный код с процессом авторизации и автоматического поставления токена, теперь добработаем серверный код что бы он посдтавлялся только в режиме отладки

#if DEBUG
                c.InjectJavascript("../js/CustomSwagger.js"); //javascript path
#endif