我的設置:如何使用Firebase令牌驗證保護我的Google Cloud Endpoints API?
- 託管在包含使用谷歌雲終點包含上述終點生成的客戶端庫
- Mobile客戶端應用程序創建的API谷歌App Engine的Java後端。還與Firebase進行身份驗證和數據庫集成。
我的意圖是,移動客戶端應用程序的用戶將能夠使用Firebase身份驗證登錄到移動應用程序,然後連接到任何後端API,然後進行一些處理,然後讀取或將數據寫入/從Firebase數據庫中。
爲了確保API的服務器上,我想我將不得不使用火力地堡服務器SDK的內置verifyIdToken()方法(見Verifying ID Tokens上火力地堡)解碼用戶的ID令牌從客戶端傳遞應用。由於verifyIdToken()異步運行,我如何將它與GAE中的API方法集成?我有類似到目前爲止以下的東西:在任務隊列異步運行
@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;
}
您是否使用App Engine靈活環境或App Engine標準環境實現了這一目標? – gbhall