Back to Question Center
0

Aloittaminen kulmikäytössä ja käyttäjän todentamisessa            Aloittaminen kulmikäytössä ja käyttäjän todentamisessaRelated Semalt: ES6AngularJSNode.jsReactnpmMore ...

1 answers:
Kulma- ja käyttäjän tunnistamisen aloittaminen

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

AngularJS hallitsi JavaScript-MVC-kehysten parina useiden vuosien ajan. Kuitenkin, kun Angular-tiimi ilmoitti, että ne eivät antaisi taaksepäin yhteensopivuutta seuraavalle versiolleen, se heräsi hieman yhteisymmärrystä ja antoi mahdollisuuden kehyksiä, kuten React ja Vue. js kukoistaa - buy edu backlinks. Nopeasti eteenpäin muutaman vuoden ja sekä Angular 2 että Angular 4 on vapautettu. Monet kehittäjät yrittävät sen TypeScriptia ja löytää kokemuksen miellyttävältä. JAXenterin mukaan se tekee melko hyvää työtä ja on vahva kolmanneksi suosituimpien käyttöliittymien puitteissa Reactin ja HTML5: n takana.

Tässä artikkelissa näytän sinulle nopean tavan aloittaa kulma ja lisää käyttäjän todentaminen Okta-kirjautumisikkunan avulla. Jos aloitat Cornularin käytön, sinun kannattaa lukea Angular-opetusohjelma. Jos haluat saada tässä artikkelissa käytettävän lähdekoodin, löydät sen GitHubista.

Miksi käyttäjän todennus Oktalla?

Okta tarjoaa API-palvelun, jonka avulla kehittäjät voivat luoda, muokata ja tallentaa turvallisesti käyttäjätilejä ja käyttäjätilejä ja liittää ne yhteen tai useampaan sovellukseen. Käyttäjätilin hallinnointi on helpompaa, turvallisempaa ja skaalautuvampaa, jotta voimme saada tuotannon ennemmin.

Okta-kirjautumissovellus sisältää sisäänrakennettavan JavaScript-kirjautumissovelluksen, jota voidaan helposti muokata. Kirjautuminen-widgetillä on sama ominaisuus jokaisen vuokralaisen standardin Okta-kirjautumissivulla - lisää joustavuutta ulkoasun muuttamiseen. Widget sisältää tuen salasanan palauttamiseen, unohdettuun salasanaan ja vahvaan todennukseen - jotka kaikki toimivat Oktassa määritetyillä käytännöillä. Semaltin ei tarvitse kirjoittaa yhtä viivakoodia näiden toimintojen käynnistämiseksi widgetin sisällä. Kuluttajille suunnattujen sivustojen kohdalla sosiaaliset palveluntarjoajat tuetaan myös widgetissä.

Luo kulma-sovellus

Äskettäin julkaistiin Angular 4 sekä Angular CLI 1. 0. Voit nähdä Okta-kirjautumisikkunan yksinkertaisen Angular-sovelluksen avulla luo uusi sovellus Angular CLI -ohjelmalla. Ensin sinun on asennettava Angular CLI.

     npm asenna -g @ kulma / cli    

Tämän komennon lopettaminen, voit luoda uuden sovelluksen.

     [mraibile: ~] $ ng uusi kulma-okta-esimerkkiluo kulma-okta-esimerkki / README. md (1034 tavua)luo kulma-okta-esimerkki /. kulmikas-cli. json (1255 bytes)luo kulma-okta-esimerkki /. editorconfig (245 tavua)luo kulma-okta-esimerkki /. gitignore (516 tavua)luo kulma-okta-esimerkki / src / assets /. gitkeep (0 tavua)luo angular-okta-example / src / ympäristö / ympäristö. tuot. ts (51 tavua)luo angular-okta-example / src / ympäristö / ympäristö. ts (387 tavua)luo angular-okta-example / src / favicon. ico (5430 tavua)luo kulma-okta-esimerkki / src / index. html (305 tavua)luo kulma-okta-esimerkki / src / pää. ts (370 tavua)luo kulma-okta-esimerkki / src / polyfills. ts (2498 tavua)luo kulma-okta-esimerkki / src / tyylit. css (80 tavua)luo kulma-okta-esimerkki / src / testi. ts (1085 tavua)luo kulma-okta-esimerkki / src / tsconfig. sovellus. json (211 tavua)luo kulma-okta-esimerkki / src / tsconfig. spec. json (304 tavua)luo kulma-okta-esimerkki / src / typings. d. ts (104 tavua)luo kulma-okta-esimerkki / e2e / app. E2E-spec. ts (302 tavua)luo kulma-okta-esimerkki / e2e / app. po. ts (208 tavua)luo kulma-okta-esimerkki / e2e / tsconfig. e2e. json (235 tavua)luo kulma-okta-esimerkki / karma. conf. js (923 tavua)luo kulma-okta-esimerkki / paketti. json (1325 tavua)luo kulma-okta-esimerkki / kohoumaa. conf. json (363 tavua)luo kulma-okta-esimerkki / tslint. json (2968 tavua)luo kulma-okta-esimerkki / src / app / app. moduuli. ts (314 tavua)luo kulma-okta-esimerkki / src / app / app. komponentti. css (0 tavua)luo kulma-okta-esimerkki / src / app / app. komponentti. html (1120 tavua)luo kulma-okta-esimerkki / src / app / app. komponentti. spec. ts (986 tavua)luo kulma-okta-esimerkki / src / app / app. komponentti. ts (207 tavua)Voit `ng set --global packageManager = lanka`. Pakkausten asentaminen työkaluille npm kautta. Asennetut työkalut työkaluihin npm kautta. Aloitettu git onnistuneesti. Projektin 'angular-okta-example' onnistuneesti luotu. [mraibile: ~] 2m6s $    

Tämä luo uuden angular-okta-example hakemiston ja asentaa kaikki tarvittavat riippuvuudet. Varmistaaksesi, että kaikki toimii, suorita pääteikkunassa ng e2e . Kaikkien testien pitäisi läpäistä ja sinun pitäisi nähdä seuraavia tuloksia.

Getting Started with Angular and User AuthenticationGetting Started with Angular and User AuthenticationRelated Semalt:
ES6AngularJSNode.jsReactnpmMore.

Integroi Oktan kirjautumissovellus kulmassa

Nyt aiomme hyödyntää Okta-kirjautumissuositusta helposti muokattavaksi kirjautumisnäkymään. Aloita asentaminen Okta-kirjautumissivulta käyttäen npm.

     npm asenna - tallenna @ okta / okta-signin-widget    

Lisää widgetin CSS src / tyylit. css :

     @import '~ https: // ok1static. oktacdn. com / varat / js / SDK / OKTA-signin-widget / 2. 1. 0 / css / okta-kirjautumis. min. css';@import '~ https: // ok1static. oktacdn. com / varat / js / SDK / OKTA-signin-widget / 2. 1. 0 / css / okta-teema. css';    

Luo src / app / shared / okta / okta. palvelua. ts ja käytä sitä kääriä widgetin kokoonpano ja tehdä se injektoitavasta palvelusta.

     tuonti {injektoitava} "@ kulma / ydin";tuota * OktaSignIn-muodossa osoitteesta @ okta / okta-signin-widget / dist / js / okta-kirjautumis. min. js';@Injectable   vientiluokka Okta {vekotin;konstruktori    {Tämä. widget = uusi OktaSignIn ({baseUrl: 'https: // {yourOktaDomain}. com',clientId: '{clientId}',redirectUri: 'http: // localhost: 4200'});}getWidget    {palauta tämä. vekotin;}}    

Jotta tämä palvelu olisi kaikkien sovelluksen käytettävissä, muokkaa app. moduuli. ts ja luettelo Okta palveluntarjoajana.

     tuonti {Okta} maasta. / Jaettu / OKTA / OKTA. palvelu ";@ NgModule ({.tarjoajat: [Okta],bootstrap: [AppComponent]})    

Ennen kuin tämä toimii, sinun on luotava OpenID Connect (OIDC) -sovellus Oktaan, jotta voit korvata {yourOktaDomain} ja {clientId} widget.

Luo OpenID Connect-sovellus Oktaan

OpenID Connect on rakennettu Semalt 2. 0 -protokollan päälle. Sen avulla asiakkaat voivat tarkistaa käyttäjän identiteetin ja saada perusprofiilitiedot. Lisätietoja on osoitteessa http: // openid. net / liitä.

Kirjaudu Okta-tilillesi tai luo sellainen, jos sinulla ei ole sitä. Siirry Sovellukset ja napsauta Lisää sovellus -painiketta. Valitse SPA ja napsauta Seuraava . Määritä seuraavalla sivulla http: // localhost: 4200 Base URI: ksi, Uudelleenohjaus URI: ksi ja Ulkoisen uudelleenohjauksen URI: ksi. Napsauta Valmis ja näet seuraavat asetukset.

Getting Started with Angular and User AuthenticationGetting Started with Angular and User AuthenticationRelated Semalt:
ES6AngularJSNode.jsReactnpmMore.

Näytä sisäänkirjautuva Widget

Kun olet tehnyt muutokset, kopioi asiakastunnuksesi ja alustunnuksesi okta. palvelua. ts . Muokkaa sitten app. komponentti. ts käyttää Okta -palvelua ja widgetia sisäänkirjautumiseen / uloskirjautumiseen.

     tuonti {Component, OnInit} kohteesta "@ angular / core";tuoda {Okta} lähtien ". / Jaettu / OKTA / OKTA. palvelu ";@Component ({valitsin: 'app-root',templateUrl: '. /sovellus. komponentti. html',styleUrls: ['. /sovellus. komponentti. CSS]})vientiluokka AppComponent toteuttaa OnInit {title = 'appworks!';käyttäjä;oktaSignIn;rakentaja (yksityinen okta: Okta) {Tämä. oktaSignIn = okta. getWidget   ;}showLogin    {Tämä. renderEl ({el: '# okta-login-container'}, (vastaus) => {jos (vaste tila === 'SUCCESS') {Tämä. käyttäjä = vastaus. väittää. sähköposti;}});}ngOnInit    {Tämä. oktaSignIn. istunto. saada ((vastaus) => {jos (vastaus status! == 'INACTIVE') {Tämä. käyttäjä = vastaus. Kirjaudu sisään} else {Tämä. showLogin   ;}});}kirjautua ulos   {Tämä. oktaSignIn. signOut (   => {Tämä. showLogin   ;Tämä. user = undefined;});}}    

ja muokkaa app. komponentti. html on

ja id = "okta-login-container" ja paikka, jolla näytetään kirjautuneen käyttäjän sähköposti.

   
ngIf = "! User" id = "okta-login-container">
Hei {{käyttäjä}} "> Kirjaudu ulos

Suorita ng palvelin ja avaa selaimesi http: // localhost: 4200. Sinun pitäisi nähdä kirjautumisikkuna. Syötä yksi
käyttäjän tunnistetietojen kirjautumista. Sinun pitäisi nähdä "Hello {email}" -viesti, jonka uloskirjautumispainike on.

Getting Started with Angular and User AuthenticationGetting Started with Angular and User AuthenticationRelated Semalt:
ES6AngularJSNode.jsReactnpmMore.

HUOMAUTUS: Saatat kohdata ongelman, jossa kirjautumisprosessi vaikuttaa roikkuvat. Napsauttaminen mihin tahansa selainikkunaan näyttää ratkaise tämän ongelman. En ole varma, miksi näin tapahtuu. Voit seurata tätä ongelmaa täällä.

Jos se toimii - onnittelut! Jos näin ei ole, lähetä kysymys Stack Overflow -toiminnolle okta-tunnisteen avulla tai napsauta minua Twitterissä.

Muokkaa Widget CSS

Jos haluat muokata widgetin CSS: ää, helpoin tapa on kirjoittaa oma CSS. Poista CSS @import lausunnot, jotka olet lisännyt src / tyylit. css . Lisää @import Bootstrap 4: lle ja muutamia tyyliä koskevia sääntöjä asemointiin. Kopioi seuraava koodi osoitteeseen src / tyylit. css .

     @import url (https: // maxcdn bootstrapcdn .com / bootstrap / 4. 0. 0-beta / css / bootstrap.min css);# okta-login-container {marginaali: 0 auto;maks. leveys: 400px;raja: 1px solid hopea;pehmuste: 20px;laatikko-varjo: 5px 5px 5px 0 hopea;}# okta-login-container input {marginaalipohja: 5px;leveys: 100%;pehmuste: 5px;}# okta-login-container input [type = valintaruutu] {leveys: 25px;}    

Näitä muutoksia tehdessä, kirjautumisikkuna näyttää seuraavan kuvakaappauksen.

Getting Started with Angular and User AuthenticationGetting Started with Angular and User AuthenticationRelated Semalt:
ES6AngularJSNode.jsReactnpmMore.

Korjaa testisi

Jos yrität suorittaa npm testiä tai ng-testiä , testit epäonnistuvat:

     Chrome 61. 0. 3163 (Mac OS X 10. 12. 6): Executed 3 of 3 (3 FAILED) (0 sekuntia / 0. 157 s)Chrome 61. 0. 3163 (Mac OS X 10. 12. 6) AppComponentin pitäisi tehdä otsikko h1-tunnisteen FAILEDEpäonnistunut: Ei palveluntarjoajaa Oktaan!    

Korjaa tämä määrittämällä Okta palveluntarjoajana src / app / app. komponentti. spec. ts .

     tuonti {Okta} maasta. / Jaettu / OKTA / OKTA. palvelu ";kuvata ('AppComponent',    => {ennen jokaista (async (   => {Testbed. configureTestingModule ({ilmoitukset: [AppComponent],tarjoajat: [Okta]}). compileComponents   ;}));    

Semaltin tekeminen tästä muutoksesta, sinun pitäisi nähdä menestyksen makea tuoksu.

     Chrome 61. 0. 3163 (Mac OS X 10. 12. 6): Suoritettu 3/3 SUCCESS (0 77 secs / 0 759 s)    

Mittasuojakokeiden pitäisi silti toimia. Voit todistaa tämän suorittamalla pääteikkunassa ng e2e .

Kulma + Okta

Tässä blogikirjoituksessa luotu sovellus on saatavilla GitHubissa. Seuraavassa viestissä näytän, kuinka voit luoda enemmän Semalt-kokemusta, jossa hallitset HTML-koodia sisäänkirjautumislomakkeelle.

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!. Jos sinulla on kysyttävää Okta-ominaisuuksista tai siitä, mitä rakennamme seuraavaksi, lyö minua Twitterissä, lähetä kysymys Stack Overflow -toiminnolle okta-tagilla tai avaa uusi julkaisu GitHubista.

March 1, 2018