我在React中有一個自定義的Google Sign In按鈕(遵循品牌指南),我需要將其實施到Web應用程序中。 Android應用已經使用BE實施Google登錄,並要求授權代碼發送給BE。我似乎無法訪問授權碼(儘管我可以很容易地獲得訪問令牌,標識和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`,
})
})
}
在我的陣營分量,我附上一個單擊處理程序,以一個陣營REF(正如我在其它計算器問題見過)。
componentDidMount() {
// element, options, success, failure
ThirdPartyLogInApi.auth2.attachClickHandler(
this.button,
{},
this.onGoogleSuccess,
this.setProcessingToFalse
);
}
在成功回調(this.onGoogleSuccess),我能叫googleUser.getBasicProfile()來獲取用戶信息和googleUser.getAuthResponse(真),以獲得id_token和的access_token,但我需要的授權碼太。
我在我的智慧結束與谷歌的文檔就此 - 有人能指點我在正確的方向嗎?我不想切換整個認證流程來使用gapi.auth2.authorize,因爲我確實需要用戶信息。
謝謝
編輯:它甚至可以訪問授權碼嗎? Google似乎將這個步驟抽象出來,然後立即返回id_token。我需要的東西,看起來像: 4/RQFWJLGd3sJQrgxuRaguzJy2yiUV4fAqVGftRSUYuqc
嗨,你有沒有設法解決這個問題?我和你在同一條船上。獲得授權碼的唯一方法是調用'auth2.grantOfflineAccess()',但是會提示另一個登錄請求。它應該使用'gapi.auth2.init()'或'auth2.grantOfflineAccess()';不確定如何只用一個電話就能逃脫。 –