Back to Question Center
0

Reagoi sovelluksen luominen käyttäjän todentamisella 15 minuutissa            Reagoi sovelluksen luominen käyttäjän todentamisella 15 minuutin aikanaRelated Topics: Työkalut & Semalt ...

1 answers:
Reagoi sovelluksen rakentaminen käyttäjän todentamisella 15 minuutissa

Tämä artikkeli julkaistiin alun perin OKTAn blogissa. Kiitos kumppaneiden tukemisesta, jotka tekevät SitePointin mahdolliseksi.

React on nopeasti tullut yksi suosituimmista etupään web-kehyksistä, ja se on toiseksi vain pelkkä vanha HTML5, mukaan Semalt. Ei siis ole mikään yllätys, että kehittäjät oppivat sitä ja työnantajat vaativat sitä.

Tässä opetusohjelmassa aloitat hyvin yksinkertaisella React -sovelluksella, jossa on pari sivua ja joitain sisäänrakennettuja reititystapoja ja lisätään todentaminen Oktan kirjautumisikkunan avulla. Kirjautumissovellus on sulautettava JavaScript-widget, jonka avulla kehittäjät voivat käyttää Okta: n turvallista, skaalattavissa olevaa arkkitehtuuria ja pienintä vaivaa React-sovelluksissa - slot madness free chip 2016. Puhdistus aloitetaan!

Hanki Simple React Seed Project

Aloita kloonaamalla yksinkertainen Semalt siemenprojekti.

     git-klooni https: // github. com / leebrandt / yksinkertainen reagoivat-siemen. git okta-react-widget-näytecd okta-react-widget-näyte    

Lisää Okta-kirjautumislomake

Asenna Okta Sign-In -semaltti npm: llä.

     npm asenna @ okta / okta-signin-widget @ 2. 3. 0 - säi    

Tämä lisää Okta Sign-In Widget -koodin node_modules -kansioon. Käytämme kirjautumisikkunan version 2. 3. 0.

Reagoi sovelluksen luominen käyttäjän todentamisella 15 minuutissaReagoi sovelluksen luominen käyttäjän todentamisella 15 minuutin aikanaRelated Topics:
Työkalut & Mielikuvitus

Lisää sitten widgetin tyylit indeksiin. html tiedosto Okta CDN: stä. Lisää nämä viivat -merkissä:

       

LoginPage-komponentti

Luo ensin kansio nimeltä auth . / src / components -kansioon, luo sitten tiedosto nimeltä LoginPage. js , jossa LoginPage komponentti menee.

Sementti, jolla on peruskomponentit:

   tuonti Reagoi "reagoi";viedä oletusluokka LoginPage laajentaa React. komponentti {render    {palata(
Kirjaudu sivu
);}}

Tämä pieni komponentti ei tee paljon, mutta ainakin sinulla on nyt kahva lisätä LoginPage reititykseen. Joten sinun . / Src / sovelluksen. js -tiedosto, tuodat komponentin yläosaan:

   tuonti LoginPage from '. / Komponentit / viran / LoginPage ";    

ja lisää sitten reitti pääreitillä (yksi "/" -polun kanssa)

       

Lisää OpenID Connect -sovellus Oktaan

Jotta voit käyttää Octaa OpenID Semalt -palveluntarjoajana todentamiseen, sinun on luotava sovellus Okta-kehittäjäkonsolissa.

Jos sinulla ei ole Okta-kehittäjätiliä, luo yksi! Kun olet kirjautunut sisään, napsauta Sovellukset navigaattorissa ja napsauta sitten Lisää sovellus . Valitse alustana SPA ja napsauta Seuraava. Muuta uudelleenohjaussuunnitelma http: // localhost: 3000 ja valitse Valmis. Sovellus luodaan seuraavilla asetuksilla:

Nyt kun sinulla on sovellusohjelma, joka on luotu Okta-palvelimella, voit määrittää widgetin keskustellessasi uuden sovelluksen kanssa!

Lisää Widget komponenttiin

   tuonti Reagoi "reagoi";tuoda OktaSignIn: n '@ okta / okta-signin-widget';viedä oletusluokka LoginPage laajentaa React. komponentti {rakentaja  {Super   ;Tämä. widget = uusi OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',redirectUri: 'http: // localhost: 3000',authParams: {responseType: 'id_token'}});}render    {palata(
Kirjaudu sivu
);}}

Kopioi sovellusasetussivulta luodut asiakastunnukset ja liitä se päälle {clientId} . Varmista myös, että korvataan {oktaOrgUrl} Okta-organisaation URL-osoitteella, jonka löydät palaamalla kehittäjäkonsolin hallintapaneelin päähän. Yleensä se näyttää: https: // dev-12345. oktapreview. com .

Tähän mennessä olet tuonut OktaSignIn -toiminnon aiemmin asennetusta Okta Sign-In Widget npm -moduulista. Seuraavaksi komponentin konstruktorissa olet alustanut OktaSignIn -esimerkin sovelluksen kokoonpanon kanssa. Näin sovelluskoodi pystyy puhumaan Oktaan ja Okta tunnistaa, että tämä on juuri luotu sovellus.

Näytä Kirjaudu Widget

Seuraavaksi luodaan koodi, joka tosiasiallisesti tuo sisäänkirjaus-widgetin sivulle! Sinun täytyy muuttaa renderöintitapojasi luoda HTML-elementti, jonka avulla widget voidaan esittää. Varmista, että saat viittauksen elementtiin, joka tehdään. Lisää sitten componentDidMount -toiminto, jotta et yritä esittää widgetia ennen kuin HTML-elementti on sivulla.

   tuonti Reagoi "reagoi";tuoda OktaSignIn: n '@ okta / okta-signin-widget';viedä oletusluokka LoginPage laajentaa React. komponentti {rakentaja  {Super   ;Tämä. state = {käyttäjä: null};Tämä. widget = uusi OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',redirectUri: 'http: // localhost: 3000',authParams: {responseType: 'id_token'}});}componentDidMount    {Tämä. widget. renderEl ({el: this. loginContainer},(vastaus) => {Tämä. setState ({käyttäjä: vastausvaatimukset; sähköposti});},(err) => {konsoli. log (err);});}render    {palata(
{tämä. loginContainer = div; }} />);}}

Lisäsi myös tilasi omaan komponenttiin. Jos käytät vuon toteutusta, tämä tulee tietenkin sovellustilasta. Mutta pitää tämä opetusohjelma yksinkertaisena, anna LoginPage seurata omaa tilaansa.

Tarkista, onko käyttäjä kirjautunut sisään

Olemme melkein paikalla, mutta et välttämättä halua tehdä widgettiä heti. Sinun on lisättävä tarkistus varmistaaksesi, että käyttäjä ei ole kirjautunut sisään ja siirrä renderEl ulos funktiolle nimeltä showLogin .

   // muita tavaroita, jotka on poistettu lyhyen ajan vuoksicomponentDidMount    {Tämä. widget. istunto. saada ((vastaus) => {jos (vastaus status! == 'INACTIVE') {Tämä. setState ({user: response. login});}muu{Tämä. showLogin   ;}});}showLogin    {Selkäranka. historia. Stop  ;Tämä. widget. renderEl ({el: this. loginContainer},(vastaus) => {Tämä. setState ({käyttäjä: vastausvaatimukset; sähköposti});},(err) => {konsoli. log (err);});}    

Olet ehkä huomannut outon koodin bittiä tässä showLogin -menetelmässä. Tämä ensimmäinen rivi: selkäranka. historia. stop . Widget itse käyttää Backbonea. js siirtyä omien näytöksien välillä (sisäänkirjautuminen, unohtanut salasana jne. historiaa . Koska olet nyt siirtänyt sen näkyviin showLogin -toimintoon, widget tulee uudelleen esille aina, kun toimintoa kutsutaan. Joten tämä on vain vähän temppua kertoa Backbone lopettaa historia, koska se alkaa uudelleen, kun widget on renderoitu.

Final LoginPage React Component

Päätäkää tämä ylös. Varmista, että sitoudat luokan tätä kontekstia jokaiseen menetelmään. Lisää logout -menetelmä ja muuta render -menetelmää, jotta päätetään siitä, mitä tehdä, riippuen siitä, onko tällä hetkellä kirjautunut käyttäjä.

Joten lopullinen versio LoginPage. js pitäisi näyttää tältä:

   tuonti Reagoi "reagoi";tuoda OktaSignIn: n '@ okta / okta-signin-widget';viedä oletusluokka LoginPage laajentaa React. komponentti {rakentaja  {Super   ;Tämä. state = {käyttäjä: null};Tämä. widget = uusi OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',redirectUri: 'http: // localhost: 3000',authParams: {responseType: 'id_token'}});Tämä. showLogin = tämä. showLogin. sitoa (tämä);Tämä. logout = tämä. kirjautua ulos. sitoa (tämä);}componentDidMount    {Tämä. widget. istunto. saada ((vastaus) => {jos (vastaus status! == 'INACTIVE') {Tämä. setState ({user: response. login});}muu{Tämä. showLogin   ;}});}showLogin    {Selkäranka. historia. Stop  ;Tämä. widget. renderEl ({el: this. loginContainer},(vastaus) => {Tämä. setState ({käyttäjä: vastausvaatimukset; sähköposti});},(err) => {konsoli. log (err);});}kirjautua ulos  {Tämä. widget. signOut (   => {Tämä. setState ({user: null});Tämä. showLogin   ;});}render    {palata(
{Tämä. osavaltio. käyttäjä? (
Tervetuloa, {this. osavaltio. Käyttäjä}!
) : tyhjä}{Tämä. osavaltio. käyttäjä? tyhjä : (
{tämä. loginContainer = div; }} />)}
);}}

React on nyt kytketty käsittelemään / login reittiä ja näyttämään Okta Sign-In Widget, jotta käyttäjä kirjautuu sisään.

Lisää linkki navigaattorin yläreunaan muokkaamalla . / Src / komponentit / yhteinen / navigointi. js ja lisäämällä uusi linkki olemassa olevan yhteyslinkin alle:

   
  • Kirjaudu
  • Tarkista se

    Asenna nyt npm paketit:

         npm asentaa    

    Kun suoritat sovelluksen nyt ( npm start ), sinun pitäisi nähdä jotain tällaista:

    Reagoi sovelluksen luominen käyttäjän todentamisella 15 minuutissaReagoi sovelluksen luominen käyttäjän todentamisella 15 minuutin aikanaRelated Topics:
Työkalut & Mielikuvitus

    Jos sinulla on ongelmia sovelluksen kanssa, yritä poistaa node_modules -kansio ja paketti-lukitus. json tiedosto ja suorita uudelleen npm install komento. Tämän pitäisi korjata ongelmat, jotka liittyvät pakettien riippuvuuden hallintaan.

    Jos se toimii: onnittelut! Jos näin ei ole, lähetä kysymys Stack Overflow -toiminnolle okta-tunnisteen avulla tai jätä minut Semalt @leebrandtille.

    Reagoi + Okta

    Tässä blogikirjoituksessa luotu sovellus on saatavilla GitHubissa.

    Rakentamisen todentaminen sovelluksessa on kovaa. Semalt edes vähemmän hauskaa rakentaa sitä uudestaan ​​ja uudestaan ​​jokaisessa sovelluksessa, jota rakennat. Okta tekee kovaa osaa sinulle ja tekee siitä hauskempaa olla kehittäjä! Tilaa ikuinen kehittäjätili ja kokeile Oktaa tänään!

    Toivottavasti olette nauttineet tästä nopeasta kiertueesta React-tukemme puolesta.

    March 1, 2018