2017-11-26 17 views
0

私は、サーバーアプリケーションで認証する必要があるAndroidアプリを開発しています。サーバーアプリケーションは、Spring Securityを使用するSpring Bootアプリケーションです。サーバーアプリケーションは、カスタム認証プロバイダを使用して、ユーザーの許可された権限を設定します。Firebase認証要求の作成方法は?

これは私がidTokenを取得するために使用していたコードです:

FirebaseToken firebaseToken = null; 

    try { 
     FirebaseApp app = FirebaseUtil.getFirebaseApp(); 
     firebaseToken = FirebaseAuth.getInstance(app).verifyIdTokenAsync(authenticationToken.getIdToken()).get(); 
    } catch (InterruptedException | ExecutionException | CancellationException e) { 
     throw new AuthenticationServiceException(e.getMessage()); 
    } 

    return firebaseToken; 

一つ、私は私はこのような主張を取得することができFirebaseトークンを持っている:

Map<String, Object> claims = token.getClaims(); 

私はその後、反復処理することができますクレームを作成し、そのような権限を作成する:

List<GrantedAuthority> authorities = Lists.newArrayList(); 
authorities.add(new SimpleGrantedAuthority("some_role")); 

私が理解できないことは、どのようにc Firebaseコンソールを使用してクレームを再発行してください。これは可能ですか?私はFirebaseデータベースを使用する必要があると思っていますが、Firebaseのドキュメントで探しているものを正確に見つけることはできません。

答えて

0

Firebase認証のカスタムクレームは、現在、Firebase Admin SDKを通じてのみ作成できます。 documentation on creating custom claimsから:

// Set admin privilege on the user corresponding to uid. 
admin.auth().setCustomUserClaims(uid, {admin: true}).then(() => { 
    // The new custom claims will propagate to the user's ID token the 
    // next time a new one is issued. 
}); 

それはあまりにも、コンソールからのクレームを作成できるように、悪い考えではありませんので、私はあなたにfile a feature requestをお勧めします。

+0

ああ。あなたの返信ありがとう – SME

+0

私の答えが役に立つなら、それの左にあるupvoteボタンをクリックしてください。あなたの質問に答えた場合は、チェックマークをクリックしてそれを受け入れます。そうすれば、他の人はあなたが(十分に)助けられたことを知ることができます。 –

+0

カスタムクレームは、私が使用しているサーバーアプリケーションがjavaで開発されているので、私のためにこれを排除するjavascript経由でしか作成できないようです。私はカスタムトークンを作成することができましたが、私がしたいことは、既存の認証メカニズムの1つ、電子メールとパスワードを使用し、Java SDKを使用してクレームを追加することでした。これは不可能と思われる。 – SME

関連する問題