Heim >Web-Frontend >js-Tutorial >Easy AngularJS -Authentifizierung mit auth0
Dieser Artikel wurde aktualisiert (11.05.2017), um die Änderungen an der ATR -API von Auth0 widerzuspiegeln. Die Sicherung von Einstellungsanwendungen (SPAs) kann eine Herausforderung sein. Spas bestehen oft aus einem separaten Front-End (z. B. AngularJs) und einer Back-End-Daten-API. Die herkömmliche Sitzungsbasis-Authentifizierung ist für diese Architektur nicht geeignet, da sie den Zustand der API einführt, die REST-Prinzipien verletzt und die Integration der mobilen App behindert.
Schlüsselvorteile dieses Ansatzes:
JSON Web Tokens (JWTS): Eine aufstandlose Lösung
JWTS überwinden die Einschränkungen der Sitzungsbasierten Authentifizierung. Dieser offene Standard authentifiziert Anfragen vom AngularJS Front-End bis zur Back-End-API. Entscheidend ist, dass JWTS eine JSON-Nutzlast mit benutzerdefinierten Ansprüchen enthält, die digital für die Manipulationsfestung signiert ist.
AngularJS -Authentifizierungsinimposition
JWTs sind ideal für die AngularJS -Authentifizierung. Gesicherte API -Endpunkte werden zugegriffen, indem der JWT des Benutzers im lokalen Speicher gespeichert und in den Autorisierungs -Header von HTTP -Anfragen aufgenommen wird. Ungültige oder fehlende JWTs führen zu einer Ablehnung des Zugriffs.
Über die grundlegende Authentifizierung hinaus erfordert eine robuste AngularJS -Implementierung:
Dieses Tutorial zeigt eine vollständige AngularJS -Authentifizierungsimplementierung, einschließlich eines NodeJS -Servers für geschützten Ressourcenzugriff. Anstatt eine Benutzerdatenbank und eine JWT -Ausgabe zu erstellen, nutzen wir die kostenlose Stufe von Auth0 (bis zu 7.000 aktive Benutzer). Die Integration der sozialen Anmeldung wird ebenfalls gezeigt.
(Bild: auth0 Dashboard)
auth0 setup
yourcompany.auth0.com
). Dies kann später nicht geändert werden. http://localhost:8080
, wenn Sie das GitHub -Repo gegabelt haben):
Starten Sie den Server mit. Konfigurieren Sie bower install
und
<code class="language-bash">npm install -g http-server</code>
http-server
Die Datei app.js
verarbeitet das Parsen des Hashs nach der Authentifizierung: index.html
<code class="language-javascript">// app.js (snippet) angularAuth0Provider.init({ clientID: AUTH0_CLIENT_ID, domain: AUTH0_DOMAIN, responseType: 'token id_token', redirectUri: AUTH0_CALLBACK_URL, audience: AUTH0_API_AUDIENCE, });</code>
(Bild: AngularJS -Anmeldeseite) app.run.js
<code class="language-javascript">// app.run.js (snippet) authService.handleParseHash();</code>
(Bild: AngularJs Anmeldete Zustand)
(Bild: AngularJS -Abmeldezustand)
Homepage -Erstellung
bietet eine einfache Benutzeroberfläche mit Anmeldung/Anmeldeschaltflächen und API -Aufrufschaltflächen. Die Datei verarbeitet API -Aufrufe mit :
home.html
home.controller.js
Authentifizierungsdienst ($http
)
<code class="language-javascript">// home.controller.js (snippet) vm.getSecretMessage = function() { $http.get('http://localhost:3001/api/private', { headers: { Authorization: 'Bearer ' + localStorage.getItem('access_token') } }) .then(...) .catch(...); };</code>
Dieser Dienst übernimmt Login-, Abmelden- und Authentifizierungsstatusverwaltung:
auth.service.js
<code class="language-javascript">// auth.service.js (snippet) function authService($state, angularAuth0, authManager) { // ... login, handleParseHash, logout, isAuthenticated functions ... }</code>Erstellen Sie einen NodeJS -Server mit Express,
, und :
express-jwt
Starten Sie den Server mit jwks-rsa
. Die AngularJS -App kann jetzt Anfragen an den geschützten API -Endpunkt stellen. cors
<code class="language-javascript">// server/server.js (snippet) var authCheck = jwt({ secret: jwks.expressJwtSecret({ jwksUri: "https://{YOUR-AUTH0-DOMAIN}.auth0.com/.well-known/jwks.json" }), audience: '{YOUR-AUTH0-API-AUDIENCE}', issuer: "https://{YOUR-AUTH0-DOMAIN}.auth0.com/", algorithms: ['RS256'] }); app.get('/api/private', authCheck, function(req, res) { ... });</code>Weitere Überlegungen und FAQs
node server.js
Der Artikel endet mit einem Abschnitt zu zusätzlichen Auth0 -Funktionen (SSO, passwortlosem Login, MFA) und anderen unterstützten Backends und mobilen SDKs. Ein umfassender FAQ-Abschnitt befasst sich mit häufigen Fragen zum sozialen Anmeldung, zum Sitzungsmanagement, zum Routensicherheit, zum Token-Aktualisierung, zum Fehlerbehebung, zur Anpassung, zur Multifaktorauthentifizierung, zur Haken, zum Testen und zum Debuggen. Denken Sie daran, Platzhalter wie {YOUR-AUTH0-DOMAIN}
und {YOUR-AUTH0-API-AUDIENCE}
durch Ihre tatsächlichen Auth0 -Werte zu ersetzen.
Das obige ist der detaillierte Inhalt vonEasy AngularJS -Authentifizierung mit auth0. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!