Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swagger/Swashbuckle Authorize. Scopes checked by default

Is it possible to set an auth scope checkbox checked by default on Swashbuckle UI on a asp.net Core 2.0 Web API??

I use the "openid" scope and I'd like to have it checked every time.

Thank you.

enter image description here

like image 243
Toni Avatar asked Feb 20 '18 17:02

Toni


1 Answers

Here is hacktastic workaround for modern browsers which can be injected into index.html.

function checkScopes(container) {
  const inputNodes = container.querySelectorAll(".scopes input");
  for (const checkbox of inputNodes) {
    checkbox.click();
    console.log('Scope checkbox modified: ' + checkbox.id);
  }
}

function watchDOM() {
  // target element that we will observe
  const target = document.body;

  // subscriber function
  function subscriber(mutations) {
    mutations.forEach((mutation) => {
      if (mutation.target.className == 'auth-wrapper') {
        checkScopes(mutation.target);
      }
    });
  }

  // instantiating observer
  const observer = new MutationObserver(subscriber);

  // observing target
  observer.observe(target, { childList: true, subtree: true });
};

document.addEventListener('DOMContentLoaded', watchDOM);
like image 125
Tom Makin Avatar answered Oct 06 '22 19:10

Tom Makin