Java、Google Web Toolkit、Google Cloud Datastoreを使用して基本的なアプリケーションを作成しました。認証のために私はFirebaseを使用しています。フロントエンドがRPC呼び出しを行うと、バックエンドがそれを検証できるようにユーザートークンを渡します。Firebaseバックエンド認証の処理方法
VerifyTokenクラスをバックエンドに作成して、ユーザートークンを受け取り、Firebase verifyIdTokenを呼び出して確認し、ユーザーのUIDを返します。ユーザートークンが正常に検証されていない場合は0を返します。 RPC呼び出しを受け取るクラスは、uidを使用してデータを取得し、RPC応答でそれを返します。
ここでは、現在のコードです:
public class VerifyToken
{
public String verify(String token)
{
String uid = "0";
try
{
//Connect to Firebase
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(new FileInputStream("firebaseJsonHere"))
.setDatabaseUrl("dbUrlHere")
.build();
FirebaseApp.initializeApp(options);
//Verify the token
FirebaseAuth.getInstance().verifyIdToken(token)
.addOnSuccessListener(new OnSuccessListener<FirebaseToken>() {
@Override
public void onSuccess(FirebaseToken decodedToken) {
String uid = decodedToken.getUid();
System.out.println("uid decoded = " + uid);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e)
{
System.out.println(e.getMessage());
}
});
}catch(Exception e){
System.out.println("Exception: " + e.getMessage());
}
//Return the uid or 0 if not validated
return uid;
}
}
誰かが私がSuccessListenerから結果を取得する方法を知っている可能性がありますが。私は、uidが正常にデコードされていることがわかります。結果を戻す方法がわからないだけです。
多くのおかげで、 エド
ありがとう、ここで答えが見つかりました:[http://stackoverflow.com/questions/38418472/how-do-i-secure-my-google-cloud-endpoints-apis-with-firebase-token-verification/ 38423163#38423163](http://stackoverflow.com/questions/38418472/how-do-i-secure-my-google-cloud-endpoints-apis-with-firebase-token-verification/38423163#38423163) –