我已经实现了新的Google身份验证服务以获取access_token来调用Youtube API。 我试图在Angular应用程序中使用它。
this.tokenClient = google.accounts.oauth2.initTokenClient({
client_id: googleApiClientId,
scope: 'https://www.googleapis.com/auth/youtube.readonly',
callback: (tokenResponse) => {
this.accessToken = tokenResponse.access_token;
},
});
当我调用this.tokenClient.requestAccessToken()
时,我可以获得访问令牌并使用Youtube API,它可以正常工作。
但是一个小时后,该令牌会过期。我会收到此错误:"请求具有无效的身份验证凭据。"
我如何为用户透明地获取新刷新的access_token?
tokenClient.requestAccessToken()
会导致用户看到相同的UX - 用户需要重新交互式地选择他们想要使用的帐户。这是一个不幸的体验。有什么避免这种情况的提示吗? - Cheesoprompt:''
,这使弹出窗口自动选择,但我目前的理解是,为了完全避免它,您必须使用后端并采用授权代码流程。如果您找到更好的解决方案,我很乐意听取。 - Matt Sanders"postmessage"
作为你的授权码->令牌请求的redirect_uri
。更多细节请参见此处。 - Matt Sanders