Integroiminen WordPressin kanssa valtuutusta varten
Toinen osa sarjassa Logton integroimiseksi WordPressiin, keskittyen valtuutukseen.
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.
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.
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.
Ennen etenemistä, varmista että sinulla on seuraavat:
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:
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.
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.
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-toiminnon wp_login-toimintoon, joka laukaistaan käyttäjän kirjautuessa. 10 on prioriteetti (oletus), ja 2 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ä.
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.
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.