19

Google Cloud Endpointsで別のOAuth2プロバイダを使用する方法はありますか?たとえば、Facebookからの認証を取得し、Google Account Auth(gapi jsを使用し、ユーザークラスを@ApiMethodに設定)と同じ方法で使用します。別のoAuth2プロバイダを使用したGoogle Cloudエンドポイント

+0

これを確認してください:http://stackoverflow.com/questions/18716674/facebook-login-in-google-cloud-endpoints/22495862#22495862 –

答えて

5

いいえ、私はこの質問とGoogleの人々(私が正しく覚えていれば)はエンドポイントのユーザー認証が現在のところGoogleアカウントのみをサポートしているということでした。

+0

代替手段を実装する方法はありますか?セッションにユーザーを格納するのと同じですか? (私はちょうどそのセッションがGoogle Cloud Endpointでも動作しないことを発見しました) –

+1

確かに、あなたが望む任意の方法を実装することができます。エンドポイント経由でシステムのトークンを渡すこともできますが、自分で認証を実装する必要があります。 – Tom

+1

ここでの問題は、Google Endpointがセッションを提供していないため、ユーザーセッションを制御する方法です。 –

7

あなたがあなた自身のAuthenticatorを実装し、@Api構成を更新する必要があります。あなたはGoogle documentationで見つけることができるカスタム認証子について

public class MyAuthenticator implements Authenticator { 

    @Override 
    public User authenticate(HttpServletRequest request) { 
     String token = request.getHeader("Authorization"); 
     if (token != null) { 
      // apply your Facebook/Twitter/OAuth2 authentication 
      String user = authenticate(token); 
      if (user != null) { 
       return new User(user); 
      } 
     } 
     return null; 
    } 
} 

そして、あなたのAPIの定義

@Api(name = "example", authenticators = {MyAuthenticator.class}) 

より:このanswerに基づいて、簡単なオーセンティケータは、次のようになります。

+0

Pythonに相当するものはありますか? –

+0

@JanuszSkonieczny私はそれがpythonのために利用可能かどうか分からない、あなたはおそらくSO – tomrozb

+0

の新しい質問をする必要があります誰もがアンドロイドクライアントからヘッダー内のデータを配置する方法を知っていますか? – myfknoll

2

Google Cloud Endpointsを使用すると、User、HttpServletRequest、およびHttpServletContextをAPIメソッドにパラメータとして注入することができます。

それはのOAuth2ではないが、ここでソリューションの初めである: https://www.yanchware.com/custom-authentication-for-google-cloud-endpoints/

提案された解決策は、セッションにアクセスするために、特定のAPIメソッドでのHttpServletRequestを注入することです。

関連する問題