Auth0を使用したEasy AngularJS認証
この記事は、Auth0のAPIの変更を反映するために更新されました(11.05.2017)。シングルページアプリケーション(SPA)の保護は困難です。 スパは、多くの場合、個別のフロントエンド(Angularjsなど)とバックエンドデータAPIで構成されています。従来のセッションベースの認証は、APIに状態を導入し、休憩原則に違反し、モバイルアプリの統合を妨げるため、このアーキテクチャには不適切です。 このアプローチの重要な利点:
ステートレス認証:
- JSON Webトークン(JWTS)セキュア、ステートレス認証を有効にし、モバイルバックエンドとシームレスに統合します。
- 単純化されたユーザー管理:auth0ソーシャルログインやマルチプロファイルサポートなど、ユーザー認証管理を簡素化します。
- 合理化された統合:Auth0のライブラリとAngularJSモジュールは、認証プロセスを簡素化し、トークンの取り扱いとセッション管理を自動化します。 セキュリティの強化:
- JWTSは、保護されたAPIエンドポイントにアクセスするときに、ローカルストレージに安全に保存されています。 簡単なソーシャルログイン統合: シンプルなauth0ダッシュボードトグルを使用して人気のあるソーシャルログインを有効にします。
- セキュアAPIエンドポイント:JWT検証を備えたnodeJSサーバーはAPIエンドポイントを保護し、認証されたユーザーのみが機密データにアクセスするようにします。
- JSON Web Tokens(jwts):ステートレスソリューション
- JWTSは、セッションベースの認証の制限を克服します。 このオープン標準は、AngularJSのフロントエンドからバックエンドAPIへのリクエストを認証します。 重要なことに、JWTSにはカスタムクレーム付きのJSONペイロードが含まれています。 AngularJS認証実装 JWTSは、AngularJS認証に最適です。 安全なAPIエンドポイントは、ユーザーのJWTをローカルストレージに保存し、HTTPリクエストの承認ヘッダーに含めることによりアクセスされます。 無効または不足しているJWTSは、アクセスの拒否をもたらします
条件付きレンダリング:
JWTの有効性に基づく要素(ログイン/ログアウトボタン)を表示/非表示。 ルート保護:認証されていないユーザーが特定のルートにアクセスしないようにします ui更新:
ユーザー状態が変更されたときにUIを更新します(jwt expiration、logout)。このチュートリアルは、保護されたリソースアクセス用のNodeJSサーバーを含む、完全なAngularJS認証実装を示しています。 ユーザーデータベースとJWT発行を構築する代わりに、Auth0の無料層(最大7,000人のアクティブユーザー)を活用します。 ソーシャルログイン統合も表示されます
(画像:auth0ダッシュボード)
- auth0 setup
-
-
auth0アカウントを作成します:auth0アカウントにサインアップして、ドメイン名(例:
yourcompany.auth0.com
)を選択します。 これは後で変更することはできません。 -
デフォルトのアプリを構成します:auth0ダッシュボードで、クライアントセクションに移動し、デフォルトのアプリにアクセスします。 許可されたOrigins および許可されたコールバックurls(たとえば、このチュートリアルの)を構成します。
http://localhost:8080
api: - を作成しますapisセクション、新しいAPIを作成します。アプリケーション)。 ソーシャルアイデンティティプロバイダーを有効にする(オプション):接続のオプションを切り替えることにより、ソーシャルログイン(Google、Facebookなど)を有効にします> ソーシャル
- セクション。 インストールと構成 必要なパッケージをインストールします(GitHubリポジトリをフォークした場合は
および
bower install
を構成します。 プレースホルダーの値をauth0資格情報に置き換えます:npm install -g http-server
ログイン後にコピーhttp-server
ファイルは、認証後にハッシュを解析する処理を処理します:app.js
index.html
(画像:Angularjsログインページ)// 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コールボタンを備えたシンプルなUIを提供します。ファイルは、:を使用して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
さらなる考慮事項とFAQcors
この記事は、追加のAuth0機能(SSO、Passwordless Login、MFA)およびその他のサポートされているバックエンドおよびモバイルSDKのセクションで終了します。 包括的なFAQセクションでは、ソーシャルログイン、セッション管理、ルートセキュリティ、トークンリフレッシュ、エラー処理、カスタマイズ、マルチファクター認証、フック、テスト、デバッグに関する一般的な質問に対処します。
{YOUR-AUTH0-DOMAIN}
や{YOUR-AUTH0-API-AUDIENCE}
などのプレースホルダーを実際のauth0値に置き換えることを忘れないでください。 -
auth0アカウントを作成します:auth0アカウントにサインアップして、ドメイン名(例:
以上がAuth0を使用したEasy AngularJS認証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

Zustand非同期操作のデータの更新問題。 Zustand State Management Libraryを使用する場合、非同期操作を不当にするデータ更新の問題に遭遇することがよくあります。 �...
