我在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()';不确定如何只用一个电话就能逃脱。 –