この記事は、Auth0のAPIの変更を反映するために更新されました(11.05.2017)。シングルページアプリケーション(SPA)の保護は困難です。 スパは、多くの場合、個別のフロントエンド(Angularjsなど)とバックエンドデータAPIで構成されています。従来のセッションベースの認証は、APIに状態を導入し、休憩原則に違反し、モバイルアプリの統合を妨げるため、このアーキテクチャには不適切です。 このアプローチの重要な利点:
ステートレス認証:
条件付きレンダリング:
JWTの有効性に基づく要素(ログイン/ログアウトボタン)を表示/非表示。 ルート保護:認証されていないユーザーが特定のルートにアクセスしないようにします ui更新:
ユーザー状態が変更されたときにUIを更新します(jwt expiration、logout)。このチュートリアルは、保護されたリソースアクセス用のNodeJSサーバーを含む、完全なAngularJS認証実装を示しています。 ユーザーデータベースとJWT発行を構築する代わりに、Auth0の無料層(最大7,000人のアクティブユーザー)を活用します。 ソーシャルログイン統合も表示されます
(画像:auth0ダッシュボード)
yourcompany.auth0.com
)を選択します。 これは後で変更することはできません。http://localhost:8080
を使用してサーバーを起動します。 Auth0を統合するには、
およびbower install
を構成します。 プレースホルダーの値をauth0資格情報に置き換えます:
npm install -g http-server
http-server
ファイルは、認証後にハッシュを解析する処理を処理します:app.js
index.html
// app.js (snippet) angularAuth0Provider.init({ clientID: AUTH0_CLIENT_ID, domain: AUTH0_DOMAIN, responseType: 'token id_token', redirectUri: AUTH0_CALLBACK_URL, audience: AUTH0_API_AUDIENCE, });
app.run.js
// app.run.js (snippet) authService.handleParseHash();
(画像:Angularjsログイン状態)
(画像:Angularjsログアウト状態)
ホームページの作成
ファイルは、:を使用してAPI呼び出しを処理します
home.html
認証サービス(home.controller.js
)$http
// home.controller.js (snippet) vm.getSecretMessage = function() { $http.get('http://localhost:3001/api/private', { headers: { Authorization: 'Bearer ' + localStorage.getItem('access_token') } }) .then(...) .catch(...); };
auth.service.js
nodejsサーバーの作成
express、
、// auth.service.js (snippet) function authService($state, angularAuth0, authManager) { // ... login, handleParseHash, logout, isAuthenticated functions ... }
:を使用してnodejsサーバーを作成します
でサーバーを起動します。 AngularJSアプリは、保護されたAPIエンドポイントにリクエストを行うことができます。
express-jwt
jwks-rsa
さらなる考慮事項とFAQ cors
この記事は、追加のAuth0機能(SSO、Passwordless Login、MFA)およびその他のサポートされているバックエンドおよびモバイルSDKのセクションで終了します。 包括的なFAQセクションでは、ソーシャルログイン、セッション管理、ルートセキュリティ、トークンリフレッシュ、エラー処理、カスタマイズ、マルチファクター認証、フック、テスト、デバッグに関する一般的な質問に対処します。 {YOUR-AUTH0-DOMAIN}
や{YOUR-AUTH0-API-AUDIENCE}
などのプレースホルダーを実際のauth0値に置き換えることを忘れないでください。
以上がAuth0を使用したEasy AngularJS認証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。