ホームページ > ウェブフロントエンド > jsチュートリアル > NgSysV.A 本格的で洗練された InfoSys: クライアントサーバー バージョン

NgSysV.A 本格的で洗練された InfoSys: クライアントサーバー バージョン

Linda Hamilton
リリース: 2024-12-01 09:56:17
オリジナル
746 人が閲覧しました

この投稿シリーズは NgateSystems.com にインデックスされています。とても便利なキーワード検索機能もあります。

最終レビュー日: 2024 年 11 月

1. はじめに

ポスト 3.3 では悪いニュースがいくつかありました。ログイン ユーザーに関する情報を提供するためにクライアント側で使用されていた Firestore 認証オブジェクトがサーバー側では利用できません。これにより、次のような結果が生じます:

  • サーバー側のデータベース コードでは Firestore Admin API を使用する必要があります。これは、認証が利用できない場合、認証を参照するデータベース「ルール」に従って呼び出しを行う Firestore クライアント API コードが失敗するためです。対照的に、Admin API 呼び出しではデータベース ルールは考慮されません。ルールを削除すると、クライアント API 呼び出しはサーバー側で機能しますが、データベースがサイバー攻撃にさらされることになります (ローカルの VSCode ターミナルを使い始めて以来、ライブ Firestore データベースを操作し続けています。考えてみてください) .

  • 認証から派生した userName や userEmail などのデータ項目を使用するサーバー側のコードは、この情報を取得する別の方法を見つける必要があります。

この投稿では、これらの問題を克服して、サーバー側で安全かつ効率的に実行される高パフォーマンスの Web アプリを作成する方法について説明します。

2. 実際に認証された Svelte サーバー側コード

クライアント呼び出しシグネチャにすでに慣れている場合、Firestore Admin API に切り替える必要があるのは面倒です。しかし、これにはすぐに慣れるので、それほど負担になることはありません。

ただし、ユーザーデータの取得は別問題です。多くのアプリケーションでは、uId などのユーザー プロパティへのアクセスが設計にとって重要です。たとえば、Web アプリでは、ユーザーが自分のデータのみを表示できるようにする必要がある場合があります。残念ながら、これを手配するのは非常に困難です。さあ、始めましょう:

  1. まず、クライアント上で、サーバー側のコードがユーザーについて知る必要があるすべての情報を含む「idToken」パッケージを作成する方法を見つける必要があります。 Google は、ユーザーの認証セッション データからこれを構築する getIdToken() メカニズムを提供しています。
  2. 次に、このパッケージをサーバーに渡す方法を見つける必要があります。ここで使用されるメカニズムは、サーバーへのクライアント呼び出しに追加される「ヘッダー」にこれを登録します。
  3. 次に、Google サーバー上で Firestore Admin API の使用を認証できるようにする Google の「サービス アカウント」を取得する必要があります。これを定義するキーは、プロジェクト ファイルに安全に埋め込む必要があります (Post 3.3 の firebaseConfig.env の議論を思い出してください。
  4. )
  5. 最後に、Firestore データベースを使用する必要がある場合は、サーバー側のコードでこれらのサービス アカウント キーを提示する必要があります。

2.1 idToken の取得

著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート