Firebase Authentication의 사용자 인증을위한 ID 토큰을 명령 한 번에 가져오는 방법

Firebase Authentication, 편리합니다.
로그인이나 인증의 기구를 둥글게 던지고 있는 제품도 많이 있다고 생각합니다.

Firebase Authentication의 ID 토큰(JWT)을 인증에 사용한 API 개발 등으로 API 응답을 확인할 때, 실제 사용자의 ID 토큰을 바로 원하는 경우가 상당히 있습니다만,
클라이언트 SDK 없이 ID 토큰을 확실히 취득하는 방법이 생각 밖에 알기 어려웠기 때문에 비망록적으로 남겨 둡니다.

※Admin SDK의 인증 토큰의 이야기가 아니고, 사용자 인증용의 ID 토큰의 이야기입니다!

전제



이메일 주소와 비밀번호로 로그인 할 수있는 사용자를 Firebase Auth에 등록하십시오.



명령



Firebase Authentication과 호환되는 GCP 제품인 Identity Platform에서 REST API를 제공합니다. 1
여기에 기재가 있습니다만 조용하고 Firebase Authentication의 문맥에서 찾고 있으면 찾아내는 것이 상당히 어렵습니다.


요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"[[email protected]]","password":"[PASSWORD]","returnSecureToken":true}'
[API_KEY]는 Firebase 클라이언트 앱 설치 중에 다운로드한 google-services.json 또는 GoogleService-Info.plist에 포함된 API_KEY 항목으로 바꿉니다.emailpassword에는 말하지 않고 모가나 Firebase Auth에 등록했을 때에 사용한 것을 입력해 주세요.

이 curl 명령을 두드리면 응답 내에 idToken라는 항목이 들어있는 json 문자열이 반환되므로 문자열이 ID 토큰 (JWT)으로 사용할 수 있으므로 Firebase Auth에 의한 인증 된 API에 대한 액세스도 즉시 확인할 수 있어야 합니다.

Response
{
  "localId": "ZY1rJK0eYLg...",
  "email": "[[email protected]]",
  "displayName": "",
  "idToken": "[ID_TOKEN]",
  "registered": true,
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

덧붙여서 ID 토큰의 유효기간은 1시간이므로, 만료되어 401이 돌려주어지면 다시 이 커멘드를 두드려 재 취득해 주세요.



할 수 있을 것이라고 생각하면서 잠시 조사해도 모르고 클라이언트의 앱을 움직여 브레이크 포인트등을 붙여 ID 토큰을 빼내거나 했기 때문에 꽤 편해졌습니다.



라고 할까 이 2개의 제품의 백엔드는 동일한 것은? 

좋은 웹페이지 즐겨찾기