カスタム認証を使用せずに実際にFirebase REST APIで認証できるかどうか疑問に思っていましたか?
私はしばらくFirebaseを使用してきましたが、現在、私のバックエンドをFirebaseに移行することを考えています。バックエンドを使用するアプリは現在REST APIを使用しており、リアルタイムデータをまったく必要としません。したがって、クライアントではAndroidフレームワーク全体ではなく、REST APIのみを使用したいと思います。
HTTPリクエスト経由でFirebaseのメールとパスワード認証を使用して認証トークンを取得することは可能ですか?
以前のドキュメントではカスタムログインを使用したソリューションしか見つかりませんでしたが、新しいドキュメントではGoogleサービスアカウントが必要なようです。
どんな助けやアドバイスにも感謝します。
JavaScript APIから送信されたリクエストを調べて、Firebaseのメールとパスワード認証を実行する方法を見つけました。
これらのAPIは文書化されておらず、サポートされていません
Firebase 3認証は、Google Identity Toolkitの更新され、名前が変更されたバージョンです。古いドキュメントは完全に正確ではありませんが、役に立つ可能性があり、ここで見つけることができます:https : //developers.google.com/identity/toolkit/web/reference/
Firebase 3では、すべてのリクエストContent-Type: application/json
がヘッダーに含まれている必要があります
Firebase 3では、すべての認証リクエストにAPIキーを添付する必要があります。データベースのAPIキーを見つけるには、Firebaseプロジェクトの概要にアクセスし、[Firebaseをウェブアプリに追加]をクリックします。次のようなコードのウィンドウが表示されます。
<script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"> </script>
<script>
// Initialize Firebase
var config = {
apiKey: "<my-firebase-api-key>",
authDomain: "my-firebase.firebaseapp.com",
databaseURL: "https://my-firebase.firebaseio.com",
storageBucket: "my-firebase.appspot.com",
};
firebase.initializeApp(config);
</script>
apiKey値をコピーして、後で使用できるように保存します。
方法: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=<my-firebase-api-key>
ペイロード:
{
email: "<email>",
password: "<password>",
returnSecureToken: true
}
応答:
{
"kind": "identitytoolkit#SignupNewUserResponse",
"localId": "<firebase-user-id>", // Use this to uniquely identify users
"email": "<email>",
"displayName": "",
"idToken": "<provider-id-token>", // Use this as the auth token in database requests
"registered": true,
"refreshToken": "<refresh-token>",
"expiresIn": "3600"
}
方法: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=<my-firebase-api-key>
ペイロード:
{
email: "<email>",
password: "<password>",
returnSecureToken: true
}
応答:
{
"kind": "identitytoolkit#VerifyPasswordResponse",
"localId": "<firebase-user-id>", // Use this to uniquely identify users
"email": "<email>",
"displayName": "",
"idToken": "<provider-id-token>", // Use this as the auth token in database requests
"registered": true,
"refreshToken": "<refresh-token>",
"expiresIn": "3600"
}
方法: POST
URL: https://www.googleapis.com/identitytoolkit/v3/relyingparty/getAccountInfo?key=<my-firebase-api-key>
ペイロード:
{
idToken: "<provider-id-token>"
}
応答:
{
"kind": "identitytoolkit#GetAccountInfoResponse",
"users": [
{
"localId": "<firebase-user-id>",
"email": "<email>",
"emailVerified": false,
"providerUserInfo": [
{
"providerId": "<password>",
"federatedId": "<email>",
"email": "<email>",
"rawId": "<email>"
}],
"passwordHash": "<hash>",
"passwordUpdatedAt": 1.465327109E12,
"validSince": "1465327108",
"createdAt": "1465327108000"
}]
}
これらのリクエストは、Firebaseドキュメントで説明されているJSONデータを返します。https://www.firebase.com/docs/web/guide/login/password.html#section-logging-in
次の形式でGETリクエストを送信して認証できます。
https://auth.firebase.com/v2/<db_name>/auth/password?&email=<email>&password=<password>
ユーザーの作成_method=POST
は、クエリ文字列の一部として同じGETリクエストを送信することでも実行できます。
https://auth.firebase.com/v2/<db_name>/users?&email=<email>&password=<password>&_method=POST
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加