> 웹 프론트엔드 > JS 튜토리얼 > NgSysV.A 진지한 Svelte InfoSys: 클라이언트-서버 버전

NgSysV.A 진지한 Svelte InfoSys: 클라이언트-서버 버전

Linda Hamilton
풀어 주다: 2024-12-01 09:56:17
원래의
696명이 탐색했습니다.

이 게시물 시리즈의 색인은 NgateSystems.com에 있습니다. 거기에서 매우 유용한 키워드 검색 기능도 찾을 수 있습니다.

최종 검토일: 2024년 11월

1. 소개

Post 3.3에서는 몇 가지 나쁜 소식을 전했습니다. 로그인한 사용자에 대한 정보를 제공하기 위해 클라이언트 측에서 사용되는 Firestore 인증 객체를 서버 측에서 사용할 수 없다는 것입니다. 이는 다음과 같은 결과를 가져옵니다:

  • 서버 측 데이터베이스 코드는 Firestore Admin API를 사용해야 합니다. 이는 인증을 사용할 수 없는 경우 인증을 참조하는 데이터베이스 '규칙'에 따라 호출을 수행하는 Firestore 클라이언트 API 코드가 실패하기 때문입니다. 대조적으로, Admin API 호출은 데이터베이스 규칙을 고려하지 않습니다. 규칙을 삭제하면 클라이언트 API 호출이 서버 측에서 작동하지만 이로 인해 데이터베이스가 사이버 공격에 노출될 수 있습니다. (로컬 VSCode 터미널을 사용하기 시작한 이후로 라이브 Firestore 데이터베이스에서 작업해 왔습니다. 생각해 보세요.) .

  • 인증에서 파생된 userName 및 userEmail과 같은 데이터 항목을 사용하는 서버측 코드는 이 정보를 가져오는 다른 방법을 찾아야 합니다.

이 게시물에서는 이러한 문제를 극복하여 서버 측에서 안전하고 효율적으로 실행되는 고성능 웹앱을 생성하는 방법을 설명합니다.

2. 실제로 인증된 Svelte 서버측 코드

클라이언트 호출 서명에 이미 익숙해졌다면 Firestore Admin API로 전환해야 한다는 요구 사항이 번거롭습니다. 하지만 곧 익숙해지므로 크게 지장을 받지는 않을 것입니다.

그러나 사용자 데이터를 얻는 것은 다른 문제입니다. 많은 애플리케이션의 경우 uId와 같은 사용자 속성에 대한 액세스는 디자인에 매우 중요합니다. 예를 들어, 웹앱은 사용자가 자신의 자신의 데이터만 볼 수 있도록 해야 할 수도 있습니다. 불행하게도 이것을 준비하는 것은 꽤 힘든 일입니다. 시작합니다:

  1. 먼저 클라이언트에서 서버 측 코드가 사용자에 대해 알아야 할 모든 것을 포함하는 "idToken" 패키지를 생성하는 방법을 찾아야 합니다. Google은 사용자의 인증 세션 데이터에서 이를 구성하기 위한 getIdToken() 메커니즘을 제공합니다.
  2. 그런 다음 이 패키지를 서버에 전달하는 방법을 찾아야 합니다. 여기에 사용된 메커니즘은 서버에 대한 클라이언트 호출에 추가되는 "헤더"에 이를 등록합니다.
  3. 그런 다음 Google 서버에서 Firestore Admin API 사용을 인증할 수 있는 Google '서비스 계정'을 얻어야 합니다. 이를 정의하는 키는 프로젝트 파일에 안전하게 삽입되어야 합니다(Post 3.3의 firebaseConfig.env 토론을 기억하세요.
  4. 마지막으로 서버 측 코드는 Firestore 데이터베이스를 사용해야 하는 모든 곳에 이러한 서비스 계정 키를 제공해야 합니다.

2.1 idToken 얻기

저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿