Back to Question Center
0

Vytvořte aplikaci Reagovat s ověřením uživatelů během 15 minut            Vytvořte aplikaci s autentizačním uživatelským rozhraním za 15 minutRelated Topics: Nástroje & Semalt ...

1 answers:
Vytvořte aplikaci s autentizací uživatele za 15 minut

Tento článek se původně objevil na blogu OKTA. Děkujeme, že jste podpořili partnery, kteří umožňují SitePoint.

Společnost React se rychle stala jednou z nejoblíbenějších front-end webových rámců a je podle Semaltu druhým pouze starým HTML5. Není tedy žádným překvapením, že se vývojáři to učí a zaměstnavatelé o to požádají.

V tomto tutoriálu začnete velmi jednoduchou aplikací React s několika stránkami a vestavěným směrováním a přidáte ověření pomocí Okta's Sign-In Widget - puntali per tester. Přihlašovací widget je vestavěný widget Javascript, který umožňuje vývojářům používat bezpečnou, škálovatelnou architekturu Okta s minimálním úsilím z aplikací React. Semalt začněte!

Získejte projekt Simple React Seed

Začněte klonováním jednoduchého projektu Semaltic Seed.

     git klon https: // github. com / leebrandt / jednoduché reagující semeno. git okta-react-widget-samplecd okta-react-widget-sample    

Přidejte Okta Sign-in Widget

Namontujte Okta přihlašovací semalt pomocí npm.

     npm install @ okta / okta-signin-widget @ 2. 3. 0 - uložit    

Přidá se kód Okta Sign-In Widget do složky node_modules . Budeme používat verzi 2. 3. 0 Widgetu pro přihlášení.

Vytvořte aplikaci Reagovat s ověřením uživatelů během 15 minutVytvořte aplikaci s autentizačním uživatelským rozhraním za 15 minutRelated Topics:
Nástroje a Semalt

Pak přidejte styly widgetu do indexu . html soubor z Okta CDN. Vložte tyto řádky do značky :

       

Součást LoginPage

Nejprve vytvořte složku nazvanou auth v . / src / components a pak vytvořte soubor nazvaný LoginPage. js , kde bude připojena součást LoginPage .

Semalt s nejzákladnějšími komponenty:

   import Reagovat od 'reagovat';export výchozí třída LoginPage rozšiřuje React. Komponent{poskytnout  {vrátit se(
Přihlašovací stránka
);}}}}

Tato malá součást nemá dělat hodně, ale přinejmenším máte nyní rukojeť pro přidání LoginPage ke směrování. Takže ve vašem . / src / app. js , budete importovat součást v horní části:

   import LoginPage z '. / komponenty / auth / LoginPage ';    

a přidejte trasu uvnitř hlavní trasy (trasa s "/")

       

Přidejte aplikaci OpenID Connect v Okta

Chcete-li použít Okta jako poskytovatele Omega OpenID pro autentizaci, budete muset nastavit aplikaci v konzole pro vývojáře Okta.

Pokud nemáte účet vývojáře Okta, vytvořte si ho! Jakmile jste přihlášeni, klikněte na Aplikace v horní navigační liště a potom klikněte na tlačítko Přidat aplikaci . Zvolte SPA jako platformu a klikněte na tlačítko Další. Změňte URI přesměrování na http: // localhost: 3000 a klepněte na Hotovo. Aplikace bude vytvořena s následujícími nastaveními:

Nyní, když máte v aplikaci Okta vytvořenou aplikaci, můžete si nastavit widget a promluvit si s vaší novou aplikací!

Přidejte widget k vaší komponentě

   import Reagovat od 'reagovat';import OktaSignIn z '@ okta / okta-signin-widget';export výchozí třída LoginPage rozšiřuje React. Komponent{konstruktor    {super   ;tento. widget = nový OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',redirectUri: 'http: // localhost: 3000',authParams: {answerType: 'id_token'}}});}}poskytnout  {vrátit se(
Přihlašovací stránka
);}}}}

Zkopírujte ID klienta vygenerované z stránky nastavení aplikace a vložte jej {clientId} . Ujistěte se, že jste také {oktaOrgUrl} nahradili organizační adresou společnosti Okta, kterou můžete najít na stránce hlavního panelu v konzole pro vývojáře. Obvykle to bude vypadat takto: https: // dev-12345. oktapreview. com .

Zatím jste importovali funkci OktaSignIn z modulu Okta Sign-In Widget npm , který jste dříve nainstalovali. Dále v konstruktoru komponenty jste inicializovali instanci OktaSignIn s konfigurací aplikace. Tímto způsobem bude kód aplikace moci komunikovat s Okta a Okta rozpozná, že se jedná o aplikaci, kterou jste právě vytvořili.

Zobrazit Widget pro přihlášení

Dále vytvoříte kód pro skutečné vykreslení Widgetu pro přihlášení na stránku! Budete muset změnit způsob renderu, abyste vytvořili prvek HTML, do něhož se dá uvést widget. Ujistěte se, že jste získali odkaz na prvek, který bude vykreslen. Poté přidejte funkci componentDidMount , abyste se ujistili, že se nepokoušíte vykreslit miniaplikaci dříve, než se na stránce nachází element HTML.

   import Reagovat od 'reagovat';import OktaSignIn z '@ okta / okta-signin-widget';export výchozí třída LoginPage rozšiřuje React. Komponent{konstruktor    {super   ;tento. state = {uživatel: null};tento. widget = nový OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',redirectUri: 'http: // localhost: 3000',authParams: {answerType: 'id_token'}}});}}componentDidMount    {tento. widget. renderEl ({el: toto. loginContainer},(odpověď) => {tento. setState ({uživatel: odpověď.},(err) => {utěšit. log (err);}});}}poskytnout  {vrátit se(
{toto. loginContainer = div; }} />);}}}}

Do komponenty jste také přidali stav. Pokud používáte implementaci toku, přirozeně by to pocházelo ze stavu aplikace. Chcete-li, aby tento tutoriál byl jednoduchý, nechte své LoginPage sledovat svůj vlastní stav.

Zkontrolujte, zda je uživatel přihlášen

Jsme skoro tam, ale nemusíte nutně dělat widget hned. Budete muset přidat kontrolu, abyste se ujistili, že uživatel není již přihlášen, a přesuňte renderEl na funkci nazvanou showLogin .

   // jiné věci odstraněné kvůli stručnosticomponentDidMount    {tento. widget. zasedání. get ((odpověď) => {pokud (stav odpovědi! == 'INACTIVE') {tento. setState ({uživatel: odpověď přihlášení});}jiný{tento. showLogin   ;}}});}}showLogin    {Páteř. Dějiny. stop  ;tento. widget. renderEl ({el: toto. loginContainer},(odpověď) => {tento. setState ({uživatel: odpověď.},(err) => {utěšit. log (err);}});}}    

Možná jste si všimli zvláštního kódu v tom method showLogin . Ten první řádek: Páteř. Dějiny. stop . Samotný widget využívá Backbone. js navigovat mezi vlastními obrazovkami (přihlašovací jméno, zapomenuté heslo atd. historie . Protože jste ji nyní přesunuli do funkce showLogin , widget se znovu zobrazí při každé volbě funkce. Takže je to jen malý trik, který vám řekne Backbone, aby zastavil historii, protože se chystá restartovat po vykreslení widgetu.

Součást FinalPagePage React

Zkusme to zabalit. Ujistěte se, že spojujete kontext této třídy s každou z vašich metod. Přidejte metodu odhlášení a změňte metodu vykreslení , abyste se rozhodli, co vykreslit, podle toho, zda je aktuálně přihlášený uživatel.

Takže konečná verze Přihlásit se. js by měl vypadat takto:

   import Reagovat od 'reagovat';import OktaSignIn z '@ okta / okta-signin-widget';export výchozí třída LoginPage rozšiřuje React. Komponent{konstruktor    {super   ;tento. state = {uživatel: null};tento. widget = nový OktaSignIn ({baseUrl: 'https: // {oktaOrgUrl}',clientId: '{clientId}',redirectUri: 'http: // localhost: 3000',authParams: {answerType: 'id_token'}}});tento. showLogin = toto. showLogin. vázat (toto);tento. logout = toto. odhlásit se. vázat (toto);}}componentDidMount    {tento. widget. zasedání. get ((odpověď) => {pokud (stav odpovědi! == 'INACTIVE') {tento. setState ({uživatel: odpověď přihlášení});}jiný{tento. showLogin   ;}}});}}showLogin    {Páteř. Dějiny. stop  ;tento. widget. renderEl ({el: toto. loginContainer},(odpověď) => {tento. setState ({uživatel: odpověď.},(err) => {utěšit. log (err);}});}}odhlásit se  {tento. widget. signOut (   => {tento. setState ({uživatel: null});tento. showLogin   ;});}}poskytnout  {vrátit se(
{tento. Stát. uživatel? (
Vítejte, {toto. Stát. uživatel}!
Odhlásit
) : nula}{tento. Stát. uživatel? nula : (
{toto. loginContainer = div; }} />)}
);}}}}

React je nyní propojen s trasou / login a zobrazí Okta Sign-In Widget a vyzve uživatele k přihlášení.

Přidejte přihlašovací odkaz na top navbar úpravou . / src / components / common / Navigace. js a přidáním nového odkazu pod existujícím kontaktním odkazem:

   
  • Přihlášení
  • Check It Out

    Nyní nainstalujte balíčky npm:

         instalace npm    

    Když spustíte aplikaci nyní (s npm start ), měli byste vidět něco takového:

    Vytvořte aplikaci Reagovat s ověřením uživatelů během 15 minutVytvořte aplikaci s autentizačním uživatelským rozhraním za 15 minutRelated Topics:
Nástroje a Semalt

    Pokud máte nějaké problémy s aplikací, zkuste vymazat složku node_modules a zámek balíku. json a znovu spusťte příkaz npm install . To by mělo vyřešit veškeré problémy s řízením balíků.

    Pokud to funguje: gratulujeme! Pokud tomu tak není, zadejte prosím otázku Stack Overflow s označením okta, nebo se mě dotkněte Semalt @ leebrandt.

    Reagovat + Okta

    Kompletní verzi aplikace vytvořené v tomto příspěvku na blogu naleznete v GitHubu.

    Autentifikace objektu v aplikaci je těžká. Semaltu je ještě méně zábavné, kdybyste jej znovu a znovu sestavovali v každé aplikaci, kterou vytvoříte. Okta dělá těžkou část pro vás a dělá to mnohem zábavnější být vývojář! Zaregistrujte se na bezplatný účet pro vývojáře a zkuste to dnes Okta!

    Doufám, že jste se těšili této rychlé prohlídce naší podpory Reactu.

    March 1, 2018