Beveiliging Code snippets Plugins

Cross site authenticatie voorkomen voor gebruikers op WordPress multisite

Ik ben op dit moment bezig met een applicatie die deels werkt met het authenticeren van gebruikers op basis van het domein waarmee ze inloggen: verschillende gebruikers kunnen bij een account horen, en de applicatie can controleren of de gebruiker bij een account hoort op basis van het domein.

WordPress Multisite is erg geschikt hiervoor. Er is alleen één ding dat hierbij niet zo handig is: WordPress beschouwt je als zijnde ingelogd op elk deel van het netwerk, ook als je alleen maar lid bent van een van de subsites.

Om cross-site login te voorkomen heb ik wat code toegevoegd die op elke request uitgevoerd wordt op de authenticate hook. Het is een vrij simpel stukje code: het controleert of de ingelogde gebruiker lid is van het huidige blog. Zo niet, dan word je uitgelogd en naar het netwerk site_url geredirect.

add_action('authenticate', array($this, 'validate_on_login'), 100, 3);

function validate_on_login(){
  if (!is_user_logged_in()) {
     return;
  }

  $user = wp_get_current_user();

  //allow only login if user is member of this blog

  if (!is_user_member_of_blog( $user->ID, get_current_blog_id() ) && !is_super_admin( $user->ID )) {
    wp_logout();
    wp_redirect(network_site_url());exit();
  }

}

Related Articles

  • Je eigen content types: custom post types in WordPress

    Standaard wordt WordPress geïnstalleerd met twee post types: berichten en pagina’s. Maar als je je site echt goed wil structureren is dat meestal niet genoeg. Je kan natuurlijk alles in...
  • Je WordPress website vertalen

    Wil je je website meertalig maken? Dat is een ander onderwerp. Dit artikel gaat over het vertalen van thema’s en plugins, die vaak in het Engels zijn. Altijd die “read...
  • Een WordPress website verhuizen of migreren

    Of je nu vanaf je lokale systeem, vanaf een testaccount, of gewoon je vorige hosting bedrijf een website wil overzetten, je kan niet even je database en bestanden overzetten. Ook...
  • Sorteren op custom taxonomie in WordPress

    Voor een project met eigen post types, maatwerk velden, en een maatwerk taxonomie structuur (Categorieën van tags zijn bijvoorbeeld een taxonomie), was het nodig om te kunnen sorteren op een...

Laat een reactie achter