Back to Question Center
0

Vytvorenie aplikácie React s autentifikáciou používateľa za 15 minút            Vytvorenie aplikácie React s autentifikáciou používateľa počas 15 minút súvisiacich tém: Nástroje & Semalt ...

1 answers:
Vytvorenie aplikácie React s autentifikáciou používateľa za 15 minút

Tento článok sa pôvodne objavil na blogu OKTA. Ďakujeme, že ste podporili partnerov, ktorí umožňujú vykonanie funkcie SitePoint.

React sa rýchlo stal jedným z najobľúbenejších front-end web rámcov, a je druhý len na obyčajný starý HTML5, podľa Semalt. Takže nie je prekvapením, že sa to vývojári učia a zamestnávatelia o to žiadajú.

V tejto príručke začnete s veľmi jednoduchou aplikáciou React s niekoľkými stránkami a inštaláciou niektorého smerovania a pridajte autentifikáciu pomocou Okta's Sign-In Widget. Widget prihlásenia je vstavaný widget Javascript, ktorý umožňuje vývojárom používať bezpečnú, škálovateľnú architektúru Okta s minimálnym úsilím z aplikácií React - eleaf istick tc60w atomizer low vape. Semalt začať!

Získajte projekt Simple React Seed

Začnite klonovaním jednoduchého projektu Semaltic Seed.

     klon git https: // github. com / leebrandt / jednoduchý reagovať-semeno. git okta-react-widget-samplecd okta-react-widget-sample    

Pridajte Okta prihlásenie

Inštalujte Okta prihlasovací semalmát pomocou npm.

     npm nainštalujte @ okta / okta-signin-widget @ 2. 3. 0 - uložiť    

Týmto pridáte kód Okta Sign-In Widget do priečinka node_modules . Budeme používať verziu 2. 3. 0 Widgetu prihlásenia.

Vytvorenie aplikácie React s autentifikáciou používateľa za 15 minútVytvorenie aplikácie React s autentifikáciou používateľa počas 15 minút súvisiacich tém:
Nástroje a seminár. , ,

Potom pridajte štýly pre widget v indexe . html súbor z Okta CDN. Pridajte tieto riadky do značky :

       

Súčasť LoginPage

Najskôr vytvorte priečinok s názvom auth v . / src / components a potom vytvorte súbor nazvaný LoginPage. js , kde bude súčasť komponentu LoginPage .

Semalt s najzákladnejšími komponentmi:

   import Reagovať od "reagovať";exportná predvolená trieda LoginPage rozširuje React. komponenta {render    {vrátiť (
Prihlásenie
);}}

Táto malá zložka nie je robiť veľa, ale prinajmenšom teraz máte rukoväť na pridanie LoginPage do smerovania. Takže vo vašom . / Src / app. js , importujete komponent v hornej časti:

   import Prihlásenie od '. / Zložky / auth / LoginPage ';    

a potom pridajte trasu do hlavnej trasy (trasa s "/")

       

Pridajte aplikáciu OpenID Connect in Okta

Ak chcete používať Okta ako poskytovateľa OpenID pre Ohlasovanie, musíte nastaviť aplikáciu v konzole vývojárov Okta.

Ak nemáte účet vývojára Okta, choďte si ho! Po prihlásení kliknite na tlačidlo Aplikácie v hornom navigačnom paneli a potom kliknite na tlačidlo Pridať aplikáciu . Zvoľte SPA ako platformu a kliknite na Ďalej. Zmeňte URI presmerovania na http: // localhost: 3000 a kliknite na Hotovo. Aplikácia bude vytvorená s nasledujúcimi nastaveniami:

Teraz, keď máte v Okte vytvorenú aplikáciu, môžete nastaviť miniaplikáciu, aby ste mohli hovoriť s vašou novou aplikáciou!

Pridať widget do vašej zložky

   import Reagovať od "reagovať";import OktaSignIn z '@ okta / okta-signin-widget';exportná predvolená trieda LoginPage rozširuje React. komponenta {konštruktor    {Super  ;Tento. widget = nový OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',presmerovanie: "http: // localhost: 3000",authParams: {responseType: 'id_token'}});}render    {vrátiť (
Prihlásenie
);}}

Skopírujte ID klienta vygenerovaný z vašej stránky s nastaveniami aplikácie a vložte ho cez {clientId} . Uistite sa, že nahradíte aj {oktaOrgUrl} organizačnou adresou URL spoločnosti Okta, ktorú môžete nájsť, a to späť na hlavnú stránku Dashboard v konzole pre vývojárov. Zvyčajne to bude vyzerať takto: https: // dev-12345. oktapreview. com .

Doteraz ste importovali funkciu OktaSignIn z modulu Okta Sign-In Widget npm , ktorý ste inštalovali skôr. Ďalej v konštruktore komponentu ste inicializovali inštanciu OktaSignIn s konfiguráciou pre aplikáciu. Týmto spôsobom bude kód aplikácie schopný hovoriť s Okta a Okta rozpozná, že ide o aplikáciu, ktorú ste práve vytvorili.

Zobraziť Widget prihlásenia

Potom vytvoríte kód, ktorý skutočne vykreslí widget prihlásenia na stránku! Ak chcete vytvoriť prvok HTML, do ktorého sa dá miniaplikácia zobraziť, musíte zmeniť spôsob renderovania. Nezabudnite získať odkaz na prvok, ktorý sa vykreslí. Potom pridajte funkciu componentDidMount , aby ste sa ubezpečili, že sa nepokúsite vykresliť miniaplikáciu skôr, ako sa element HTML nachádza na stránke.

   import Reagovať od "reagovať";import OktaSignIn z '@ okta / okta-signin-widget';exportná predvolená trieda LoginPage rozširuje React. komponenta {konštruktor    {Super  ;Tento. state = {user: null};Tento. widget = nový OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',presmerovanie: "http: // localhost: 3000",authParams: {responseType: 'id_token'}});}componentDidMount    {Tento. widgetu. renderEl ({el: tento loginContainer},(odpoveď) => {Tento. setState ({user: odpoveď.).},(err) => {konzoly. log (err);});}render    {vrátiť (
{toto. loginContainer = div; }} />);}}

Do svojho komponentu ste tiež pridali stav. Ak používate implementáciu toku, prirodzene by to pochádza z stavu aplikácie. Ale aby tento návod jednoduchý, nechajte svoj LoginPage sledovať vlastný štát.

Skontrolujte, či je používateľ prihlásený

Sme skoro tam, ale nemusíte nutne robiť widget ihneď. Budete musieť pridať kontrolu, aby ste sa uistili, že používateľ už nie je prihlásený a presunúť renderEl na funkciu s názvom showLogin .

  . , , iné veci odstránené kvôli stručnosticomponentDidMount    {Tento. widgetu. sedenie. get ((odpoveď) => {ak (stav odpovedí! == 'INACTIVE') {Tento. setState ({používateľ: odpoveď, prihlásenie});} Else {Tento. showLogin   ;}});}showLogin    {Chrbtica. histórie. stop   ;Tento. widgetu. renderEl ({el: tento loginContainer},(odpoveď) => {Tento. setState ({user: odpoveď.).},(err) => {konzoly. log (err);});}    

Možno ste si všimli zvláštny kúsok kódu v tom method showLogin . Prvý riadok: Chrbtica. histórie. stop . Samotný widget používa chrbticu. js sa pohybovať medzi vlastnými obrazovkami (prihlásenie, zabudnuté heslo atď. história . Keďže ste ju teraz presunuli do funkcie showLogin , miniaplikácia sa znova zobrazí po každom vyvolaní funkcie. Takže je to len trochu trik, ktorý vám povedal Backbone, aby zastavil históriu, pretože sa chystá reštartovať po vykreslení miniaplikácie.

Konečná LoginPage React Component

Poďme to zabaliť. Zabezpečte, aby ste spojili tento kontext triedy s každou z vašich metód. Pridajte metódu odhlásenia a zmeňte svoju metódu render , aby ste sa rozhodli, čo sa má vykresliť, na základe toho, či je aktuálne prihlásený užívateľ.

Takže konečná verzia Prihlásiť sa. js by mal vyzerať takto:

   import Reagovať od "reagovať";import OktaSignIn z '@ okta / okta-signin-widget';exportná predvolená trieda LoginPage rozširuje React. komponenta {konštruktor    {Super  ;Tento. state = {user: null};Tento. widget = nový OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',presmerovanie: "http: // localhost: 3000",authParams: {responseType: 'id_token'}});Tento. showLogin = to. showLogin. väzbu (to);Tento. logout = toto. odhlásiť sa. väzbu (to);}componentDidMount    {Tento. widgetu. sedenie. get ((odpoveď) => {ak (stav odpovedí! == 'INACTIVE') {Tento. setState ({používateľ: odpoveď, prihlásenie});} Else {Tento. showLogin   ;}});}showLogin    {Chrbtica. histórie. stop   ;Tento. widgetu. renderEl ({el: tento loginContainer},(odpoveď) => {Tento. setState ({user: odpoveď.).},(err) => {konzoly. log (err);});}odhlásiť sa  {Tento. widgetu. signOut (   => {Tento. setState ({user: null});Tento. showLogin   ;});}render    {vrátiť (
{To. state. používateľ? (
Vitajte, {toto. state. Užívateľ}!
Odhlásiť
) : nulový}{To. state. používateľ? nulový : (
{toto. loginContainer = div; }} />)}
);}}

React je teraz pripojený k spracovaniu trasy / login a zobrazí Okta Sign-In Widget a vyzve užívateľa, aby sa prihlásil.

Pridanie prihlasovacieho odkazu na najvyššiu navbar úpravou . / Src / komponenty / spoločné / Navigation. js a pridanie nového odkazu pod existujúcim kontaktným odkazom:

   
  • Prihlásenie
  • Check It Out

    Teraz nainštalujte balíky npm:

         inštalácia npm    

    Keď spustíte aplikáciu teraz (s npm štart ), mali by ste vidieť niečo takto:

    Vytvorenie aplikácie React s autentifikáciou používateľa za 15 minútVytvorenie aplikácie React s autentifikáciou používateľa počas 15 minút súvisiacich tém:
Nástroje a seminár. , ,

    Ak máte nejaké problémy s aplikáciou, skúste vymazať zložku node_modules a blokovanie balíkov. json a znovu spustite príkaz npm install . To by malo vyriešiť akékoľvek problémy s riadením balíkov.

    Ak to funguje: gratulujeme! Ak tomu tak nie je, pošlite otázku na Stack Overflow s tagom okta alebo na mňa Semalt @ leebrandt.

    Reagovať + Okta

    Kompletnú verziu aplikácie vytvorenú v tomto blogovom príspevku nájdete na stránkach GitHub.

    Overovanie budovy v aplikácii je ťažké. Semaltem je ešte menej zábavné stavať ho znova a znova v každej aplikácii, ktorú vytvoríte. Okta robí ťažkú ​​časť pre vás a robí to oveľa zábavnejšie byť vývojár! Zaregistrujte sa na bezplatný účet pre vývojárov a skúste Okta ešte dnes!

    Dúfam, že ste si užili túto rýchlu prehliadku podpory nášho Reactu.

    March 1, 2018