Identity Plaatform[GCC]의 사용법(클라우드 런과 함께 사용 가능)
개요
공식 이외의 사용법을 일본어로 설명하는 방법을 찾지 못했기 때문에 여기에 기술합니다.
Identity Plaatform 설명
GCP의 IDaS 서비스입니다.GCP 관련 기본은 Firebase Authrization이라고 생각하지만 이 안에서 움직이는 것은 Identity Platiform입니다.서비스는 별다른 차이가 없지만'다세입자 기능'은 다르다.한마디로 사용자 그룹(≈ 임차인)으로 나눌 수 있다.
기본적인 사용 방법은Firebase Authrization과 같고 각 언어의 라이브러리에서도 같은 것을 사용한다.웹 브라우저에서 사용할 때'identitytooolkit'을 사용하면 기본적으로Firebase와 같은 환경에서 문제가 없습니다.
세인트 프로스니 펫
여기에는 JavaScript가 설명되어 있습니다.여기는javascript 라이브러리의version9입니다.
초기화
기타 config 내용도 있으니 적당히 추가하세요.다음은 최소한의 내용이다.이 근처는 Firebase 라이브러리에 필요한 처리이기 때문에 상세한 설명이 필요 없습니다.
import { initializeApp } from "firebase/app";
const config = {
apiKey: "~~",
authDomain: ["localhost", "~~"],
};
initializeApp(config);
로그인
여기에 적힌 것은 함수입니다. 함수의 내용만 참고하십시오. (함수 테스트는 하지 않았습니다.)
import {
getAuth,
EmailAuthProvider,
signInWithCredential,
setPersistence,
browserLocalPersistence,
getIdToken,
} from "firebase/auth";
export async function login(email, password){
const auth = getAuth();
auth.tenantId = "~~"; //マルチテナント機能を使用している場合は、テナント毎にこれを変更します。使用していない場合は必要ないです。
// browserLocalPersistenceを指定していますが、これはsignOut関数を呼び出さない限り、ログイン状態を保持します。
setPersistence(auth, browserLocalPersistence).then(async () => {
// 今回はEmail+Passwordでのログイン
const authCredential = EmailAuthProvider.credential(
email,
password
);
// 今回はEmail+Passwordでのログイン
await signInWithCredential(auth, authCredential)
.then(() => {
// 正常処理
})
.catch(() => {
// 異常処理
});
});
}
Cloud run과의 콜라보레이션.
여기에는 파이톤으로 스니 애완동물을 표시했다.
참고와는 조금 다르지만, 다음은 다세입자 이용 시 이야기다.아래에서 알 수 있듯이 Firebaseadmin을 사용하기 때문에 이 초기화 함수를 따로 호출해야 합니다.
from typing import Any, Callable
from firebase_admin import auth
from functools import wraps
from flask import request, Response
def jwt_authenticated(func: Callable[..., int]) -> Callable[..., int]:
@wraps(func)
def decorated_function(*args: Any, **kwargs: Any) -> Any:
header = request.headers.get("Authorization", None)
if header:
token = header.split(" ")[1]
try:
decoded_token = auth.verify_id_token(token)
# decoded_token["firebase"]["tenant"]から「tenantId」を取得できます。
except Exception as e:
return Response(status=403, response=f"Error with authentication: {e}")
else:
return Response(status=401)
request.uid = decoded_token["uid"]
return func(*args, **kwargs)
return decorated_function
참고 자료
Reference
이 문제에 관하여(Identity Plaatform[GCC]의 사용법(클라우드 런과 함께 사용 가능)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/straydog/articles/8b2fa5b9f781bd45b7cf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)