2017-08-04 12 views
2

ウェブアプリケーションに実装する必要があるReact(ブランドガイドラインに準拠)にカスタムGoogleログインボタンがあります。アンドロイドアプリにはすでにGoogleログインが実装されており、認証コードをBEに送信する必要があります。私は認証コードにアクセスする際に問題があるようです(私はアクセストークン、id、およびid_tokenをかなり簡単に取得できます)。Google OAuth2 JSが認証コードを取得できない

私のような初期化:私のコンポーネントを反応させるので

static googleInit (googleSignInID) { 
    gapi.load('auth2',() => { 
     ThirdPartyLogInApi.auth2 = gapi.auth2.init({ 
      // Retrieve the singleton for the GoogleAuth library and set up the client. 
      client_id: `${googleSignInID}.apps.googleusercontent.com`, 
     }) 
    }) 
} 

を、私は(私は他のstackoverflowの問題で見てきたよう)リアクトrefにクリックハンドラを添付してください。成功コールバック(this.onGoogleSuccess)で

componentDidMount() { 
    // element, options, success, failure 
    ThirdPartyLogInApi.auth2.attachClickHandler(
     this.button, 
     {}, 
     this.onGoogleSuccess, 
     this.setProcessingToFalse 
    ); 
} 

、私はid_tokenとaccess_tokenはを取得するには、ユーザー情報とgoogleUser.getAuthResponse(true)を取得するためにgoogleUser.getBasicProfile()を呼び出すことができるが、私は認証コードが必要ですあまりにも。

私はこれに関するGoogleの文書で私の知恵を失っています。誰かが正しい方向に向かうことができますか?私はユーザー情報が必要なので、全体の認証フローをgapi.auth2.authorizeを使用するように切り替える必要はありません。

ありがとう

EDIT:認証コードにアクセスすることは可能ですか? Googleがそのステップを撤回してすぐにid_tokenを返すようだ。 4/RQFWJLGd3sJQrgxuRaguzJy2yiUV4fAqVGftRSUYuqc

+0

こんにちは、これを把握できましたか?私はあなたと同じ船にいる。認証コードを取得する他の唯一の方法は、 'auth2.grantOfflineAccess()'を呼び出すことですが、それは要求の別のサインを促します。 'gapi.auth2.init()'または 'auth2.grantOfflineAccess()'のどちらかを使うべきです。 1回の通話でどのように逃げるかはわかりません。 –

答えて

0

私はこれが古い質問です知っているが、私は同じ問題が発生して問題を持つ人のためにここに私の答えを掲載する予定だ:私はちょうどのようなものを必要としています。すでにアクセストークンを持っている場合

認証コードは(あなたがGoogle Sign-In buttonを使用している場合のみ)バックエンドのために必要とされていない、単にアクセストークンを必要とするすべてのバックエンドの要求を行うためにgoogleUser.getAuthResponse().access_tokenによって提供されたアクセストークンを使用。

ここでは、アクセストークンを使用しているユーザーのエイリアスをすべて取得する例を示します。

var options = { 
    'uri': 'https://www.googleapis.com/admin/directory/v1/users/'+userEmail+'/aliases', 
    'method': 'GET', 
    'body': '', 
    'headers': { 
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer '+access_token 
    } 
}; 
関連する問題