8

Benim kurulumu: Google App Engine yukarıda belirtilen uç noktaları için oluşturulan istemci kütüphaneleri içeren Google Cloud Endpoint'ler API'ları Firebase belirteci doğrulama ile nasıl güvence altına alırım?

  • Mobil istemci uygulamaları Google Bulut son noktalarını kullanarak oluşturulan API'leri içeren barındırılan

    • Java arka uç. Ayrıca kimlik doğrulama ve veritabanı için Firebase ile entegre edilmiştir.

    Niyetim mobil istemci uygulamaları kullanıcı sırayla bazı işlem yapmak ve daha sonra okuyacak arka uç API'ler, herhangi ardından Firebase kimlik doğrulaması kullanarak mobil uygulamasında oturum bağlamak mümkün olacak olmasıdır veya Firebase veritabanına/verileri veri yazın.

    Sunucudaki API'leri güvenceye almak için, istemciden geçirilen bir kullanıcının kimlik belirtecinin kodunu çözmek için Firebase Server SDK'sının yerleşik veri doğrulamasını (Firebase Server SDK'sında) (bkz. Verifying ID Tokens Firebase'de) kullanmam gerektiğini düşünüyorum. uygulama. VerifyIdToken() işlevi eşzamansız olarak çalıştığından, bunu GAE'de bir API yöntemiyle nasıl entegre edebilirim? Bugüne kadar aşağıdakine benzer bir şey var: bu görev sona erdi ve senkron şekilde devam dek, isteğe bağlı sen dinleyicileri ekleyebilir, bekleyebilir

    @ApiMethod(name = "processAndSaveToDB", httpMethod = "post") 
        public Response processAndSaveToDB(@Named("token") String token) { 
    
         Response response = new Response();   
    
         // Check if the user is authenticated first 
         FirebaseAuth.getInstance().verifyIdToken(idToken) 
          .addOnSuccessListener(new OnSuccessListener() { 
           @Override 
           public void onSuccess(FirebaseToken decodedToken) { 
            String uid = decodedToken.getUid(); 
    
            // do bulk of processAndSaveToDB() method 
    
           }) 
          .addOnFailureListener(new OnFailureListener() { 
           @Override 
           public void onFailure(Exception e) { 
    
            // throw unauthorized exception 
    
          }); 
    
        return response; 
    } 
    
  • +0

    Bunu App Engine Esnek Ortamı'nı veya App Engine Standart Ortamını kullanarak mı yaptınız? – gbhall

    cevap

    7

    bu kimlik doğrulama görevi olarak görev kuyruğunda uyumsuz çalıştığı onSuccess, onFailure ve onComplete.

    Task<FirebaseToken> authTask = FirebaseAuth.getInstance().verifyIdToken(idToken) 
    .addOnSuccessListener(new OnSuccessListener() { 
         @Override 
         public void onSuccess(Object tr) {//do smtg } 
        }).addOnFailureListener(new OnFailureListener() { 
         @Override 
         public void onFailure(Exception excptn) {//do smtg } 
        }).addOnCompleteListener(new OnCompleteListener() { 
         @Override 
         public void onComplete(Task task) {//do smtg } 
        }); 
        try { 
         Tasks.await(authTask); 
        } catch(ExecutionException | InterruptedException e){ 
         //handle error 
        } 
        FirebaseToken decodedToken = authTask.getResult(); 
    
    +0

    Bu harika çalışıyor, teşekkürler! – user2181948

    İlgili konular