16

私はモバイルアプリケーション用のバックエンドサーバーを作成しています。 バックエンドはGoogleのアプリエンジンで動作し、Javaで書かれています。firebase認証をgoogleアプリケーションエンジンエンドポイントと統合する方法

フェイスブックなどのフェデレーションIDでユーザーがログインできるようにします。

私は、Googleがfirebase認証によるモバイルアプリの認証をサポートしていることがわかりました。 firebase認証と現在のアプリエンジンエンドポイントを統合する最も良い方法は何ですか?

私は既にクラウドプラットフォームのデータストアを使用しており、firebaseデータベースを使用したくないので、認証方法のみを使用します。

ありがとうございました。

答えて

6

私はまたこれに対する答えを探しています。私の最高5cは、これまでのiOS/Android向けウェブや「連携アイデンティティプロバイダの統合」へのコンソール(ベータ版)

  • 使用FireBase UIからの方法などで看板を設置する

    • 使用FireBaseにありますウェブ/ iOS版/ Androidのクライアント上
    • Retriveトークン/認証の詳細は
    • 認証フローを設定し、例えばとしてあなたクラウドエンドポイントにそれを渡す、HTTPリクエストヘッダ
    • あなたのエンドポイントへのjavax.servlet.http.HttpServletRequestを注入しますメソッド(リクエストオブジェクトを自動的に注入する引数とGoogleを追加するだけ)
    • エンドポイントが、HTTP要求ヘッダーとして渡した認証情報の検証を処理する要求(認証が必要)ごとに呼び出すメソッドを作成します。
    • FireBase Java SDKを使用してFireBaseを呼び出して認証情報を検証しますこれを行うには、あなたのサーブレットの一つに、例えば、FirebaseコンソールからJSONの構成をエクスポート)、それらとSDKをロードする必要があります:

    @Override 
        public void init(ServletConfig config) { 
         try{ 
         InputStream in = config.getServletContext().getResourceAsStream("/WEB-INF/firebase-privatekey.json"); 
         FirebaseOptions options = new FirebaseOptions.Builder() 
           .setServiceAccount(in) 
           .setDatabaseUrl("YOUR_DATABASE_URL") 
           .build(); 
         FirebaseApp.initializeApp(options); 
         log.info("Authentication enabled"); 
         } 
         catch(Throwable t) { 
          t.printStackTrace(); 
          log.warning("AUTHENTICATION DISABLED. Only public resources will be available"); 
         } 
        } 
    
  • +0

    私は同様の質問... HTTPを使用して新しい質問を作成しました/stackoverflow.com/questions/39124587/integrate-firebase-auth-with-google-app-engine-cloud-endpoints – SmilingM

    0

    はあなたが使用することができるはずGoogle Cloud Endpointsを認証プロキシとして使用するp。あなたのOpenAPIのテンプレート構成することにより、エンドポイントsupports validating Firebase Authentication tokens:また

    # Configure Firebase as an AuthN provider 
    securityDefinitions: 
        firebase: 
         authorizationUrl: "" 
         flow: "implicit" 
         type: "oauth2" 
         # Replace YOUR-PROJECT-ID with your project ID in the issuer and audiences fields 
         x-google-issuer: "https://securetoken.google.com/YOUR-PROJECT-ID" 
         x-google-audiences: "YOUR-PROJECT-ID" 
         x-google-jwks_uri: "https://www.googleapis.com/service_accounts/v1/metadata/x509/[email protected]" 
    
    # Add Firebase as an authN provider to specific endpoints... 
    security: 
        - firebase: [] 
    

    を、あなたはvalidates your tokens認証ミドルウェアを書くためにFirebase Admin SDKを使用することができます:/:

    FirebaseAuth.getInstance().verifyIdToken(idToken) 
        .addOnSuccessListener(new OnSuccessListener<FirebaseToken>() { 
         @Override 
         public void onSuccess(FirebaseToken decodedToken) { 
          String uid = decodedToken.getUid(); 
          // ... 
         } 
    }); 
    
    関連する問題