1. SPEAK 3

期限切れのセッションと不正なHTTPリクエスト

Version: 9.0
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

ユーザーのセッションが終了すると、アプリケーションはログインページにリダイレクトしなければなりません。SPEAK 3は、アプリケーション内のすべてのHTTPリクエストに対して401 Unauthorized Accessエラーを処理することでこれを実現します。

シングルページアプリケーションでは、アプリケーションのエントリポイントの認証を処理するために、Sitecoreの ルーティングおよびホスティング規則 を必ず使う必要があります。

認可処理フローは以下の通りです:

  1. クライアントはサーバーにリクエストを送信します。
  2. サーバーはリクエストが認証されているかどうかを検証します:
    • もし真実であれば、サーバーはリクエストを進めます。
    • そうでなければ、サーバーはクライアントに401エラーを返します。
  3. クライアントが応答を処理します:
    • 認証されれば通常通り進みます
    • 401エラーが戻ると、ページが更新されます。サーバーはページ更新時にログインにリダイレクトします(そのエントリポイントが承認を確認した場合)。

バックエンドのセットアップ

ASP.NET Web APIを使ってバックエンドAPIサービスを開発する場合は、Authorize属性を使ってサービスの認証を有効にしてください。MVCを使って開発する場合は、SitecoreAuthorize属性を使い、MVCセッションを正しく処理します。

すべてのHTTPリクエストに対して401エラーコードを処理してください

AngularのSPEAK3.Integrationパッケージ(ng-sc)は、Angularアプリケーションにおける401エラーコードを検出するためのアプリケーション全体ソリューションを提供します。

このモジュールをコードにインポートすると、公式のAngular HTTPクラスに自動的にパッチパッチを当ててすべての401エラーを検出します。401エラーがアプリケーションに返された場合、モジュールはページリロードをトリガーします。その後、ページが更新されると、Sitecoreはユーザーをログインページにリダイレクトします:

import { SciAuthHttpModule } from '@speak/ng-sc/auth-http'; // add module in root app module @NgModule({ imports: SciAuthHttpModule,

})

リクエストには引き続き公式のHTTPモジュールを使用してください。コードの書き方に違いはありませんが、コードがすべての401リクエストを処理します。アプリケーションは404エラーなど他のエラーコードも処理しなければなりません。

この記事を改善するための提案がある場合は、 お知らせください!