Integroiminen WordPressin kanssa valtuutusta varten
Toinen osa sarjassa Logton integroimiseksi WordPressiin, keskittyen valtuutukseen.
Edellisessä artikkelissa käsittelimme kuinka integroida Logto WordPressin kanssa autentikointia varten. Tämä artikkeli, sarjan toisena osana, syventyy valtuutusprosessiin, keskittyen WordPressin roolijärjestelmään ja miten toteuttaa roolien kartoitus Logton kanssa, sillä edellisessä artikkelissa käytetty laajennus ei suoraan tarjoa valtuutusominaisuuksia.
Luomme roolikartoitustoiminnon, joka automaattisesti antaa WordPress-roolit käyttäjille perustuen heidän Logto RBAC (Role-Based Access Control) perusteisiin rooleihinsa.
Ymmärtäminen WordPress-käyttäjärooleista
WordPressillä on sisäänrakennettu käyttäjäroolien hallintajärjestelmä, joka määrittelee mitä toimintoja (ominaisuuksia) käyttäjä voi suorittaa sivustolla. Oletuskäyttäjärooleihin kuuluvat Pääkäyttäjä, Toimittaja, Kirjoittaja, Avustaja ja Tilaaja, joilla jokaisella on oma joukko ominaisuuksia.
Nämä roolit ovat keskeisiä sivuston toimintojen turvallisuuden ja tehokkuuden ylläpitämiseksi, koska ne varmistavat, että käyttäjillä on asianmukaiset käyttöoikeustasot heidän vastuidensa mukaan.
Ratkaisu: mukautettu roolikartoitus
Logto käyttää roolipohjaista pääsynhallintaa (RBAC) valtuutusmallinaan, hyödyntäen "scopeja" vähimmäisyksikön lupana. Nämä scopet määrittelevät tietyt toiminnot, jotka autentikoitu käyttäjä saa suorittaa sovelluksessa. WordPress puolestaan toimii eri periaatteella käyttäjäoikeuksien hallinnassa luottaen ennalta määrättyihin "rooleihin", jotka niputtavat erilaisia ominaisuuksia yhteen.
Annettu tämä perustavanlaatuinen ero, suosittelemme luomaan erityisrooleja Logtoon, jotka vastaavat WordPressissä määriteltyjä rooleja. Nämä roolit saattavat olla ilman scopeja, niitä käytetään vain viitteenä käyttäjien kartoitukseen WordPress-rooleihin.
Esivaatimukset
Ennen etenemistä, varmista että sinulla on seuraavat:
- Viimeistele edellinen artikkeli Logton integroimiseksi WordPressiin autentikointia varten, tämä sisältää:
- WordPress-sivusto pääkäyttäjän pääsyllä.
- Logto-tili sovelluksen luomiseksi WordPress-sivustollesi.
- OpenID Connect Generic -laajennus asennettuna ja määritettynä WordPress-sivustollasi.
- Määritä roolit Logtoon, jotka vastaavat WordPressissä olevia rooleja. Esimerkiksi, jos sinulla on 'editor' rooli WordPressissä, luo 'group:editors' rooli Logtoon.
Roolikartoituksen toteuttaminen mukautetulla koodilla
Roolikartoituksen toteuttamiseksi lisäämme mukautettua koodia WordPress-teeman functions.php
-tiedostoon. Tämä sisältää käyttämällä wp_login
toiminto-koukkua, joka laukeaa kun käyttäjä kirjautuu sisään. Tässä on vaiheittainen opas tämän asettamiseen:
Vaihe 1: Tietojen saavutus teeman functions.php
Avaa teemasi functions.php
tiedosto. Voit saavuttaa tämän tiedoston WordPressin hallintapaneelin kautta siirtymällä kohtaan Ulkoasu > Teeman muokkaus ja valitsemalla functions.php
oikean puolen tiedostolistasta. Tai lähdekoodissa, siirry WordPress-teemojen hakemistoon ja paikanna functions.php
-tiedosto. Tämä tiedosto mahdollistaa mukautettujen PHP-toimintojen lisäämisen, jotka laajentavat WordPress-sivustosi toiminnallisuutta.
Vaihe 2: Kirjoittaminen roolikartoitustoiminto
Alla on yksinkertainen esimerkki toiminnosta, jonka voit lisätä functions.php:hen. Tämä toiminto laukaisee käyttäjän kirjautuessa sisään, ja se määrittelee roolit käyttäjän roles
-väitteeseen perustuen, joka on haettu Logtosta.
Vaihe 3: Koodin ymmärtäminen ja mukauttaminen
-
logto_handler
-toiminto: Tämä toiminto ottaa kaksi parametria:$user_login
(käyttäjänimi) ja$user
(käyttäjäobjekti). Se hakee roolit Logtosta, jotka on tallennettu käyttäjämetaan nimelläopenid-connect-generic-last-user-claim
, kartoittaa tämän roolin vastaavaan WordPress-rooliin ja määrittää sen käyttäjälle. -
add_action
: Tämä rivi kiinnittäälogto_handler
-toiminnonwp_login
-toimintoon, joka laukaistaan käyttäjän kirjautuessa.10
on prioriteetti (oletus), ja2
osoittaa parametrimäärän, jonka toiminto hyväksyy.
Yllä oleva esimerkki määrittelee 'editor' roolin käyttäjille, jotka on autentikoitu Logton kautta roolinimellä group:editors
. Todellisessa maailmassa, sinun todennäköisesti täytyy toteuttaa enemmän erilaista roolikartoitusta.
Voit löytää listan WordPress-rooleista ja niiden ominaisuuksista täältä.
Vaihe 4: Asennuksen testaaminen
Nyt, testataan roolikartoitustoimintoa kirjautumalla käyttäjällä, jolla on group:editors
rooli Logtossa. Kirjautumisen jälkeen, tarkista käyttäjän rooli WordPressissä varmistaaksesi, että kartoitus toimii oikein.
Yhteenveto
Integroimalla Logto WordPressin kanssa sekä autentikointia että valtuutusta varten, voit parantaa sivustosi turvallisuutta ja toiminnallisuutta. Muista, vaikka tässä annettu koodi on perusesimerkki, sinun saattaa tarvita mukauttaa sitä WordPress-sivustosi rooli- ja käyttöoikeusjärjestelmän sopivaksi.