如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?
Posted
技术标签:
【中文标题】如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?【英文标题】:How to get access token with refresh token for YouTube Data API through Firebase Google authentication? 【发布时间】:2021-11-13 22:05:42 【问题描述】:我想构建一个可以查看用户的 YouTube 频道信息的网络应用。
我使用Firebase
与Google 进行身份验证,然后借助下面的代码存储accessToken
和refreshToken
。
const provider = new GoogleAuthProvider();
provider.addScope("https://www.googleapis.com/auth/youtube.readonly");
signInWithPopup(auth, provider)
.then(async (result) =>
// This gives you a Google Access Token. You can use it to access the Google API.
const credential = GoogleAuthProvider.credentialFromResult(result);
const accessToken = credential.accessToken;
const refreshToken = result._tokenResponse.refreshToken;
const user = result.user;
localStorage.setItem("accessToken", accessToken);
localStorage.setItem("refreshToken", refreshToken);
localStorage.setItem("user", user);
但在accessToken
到期后,它就失效了。
所以,我想在refreshToken
的帮助下获得新创建的accessToken
,但我找不到任何方法来检索它。
【问题讨论】:
firebase.google.com/docs/reference/js/v8/… 您可以在下面的答案中找到详细信息。 ***.com/questions/40838154/… 【参考方案1】:Firebase SDK 不管理 this answer 中提到的提供程序令牌。最简单的方法是reauthenticate the user,但如果需要,用户可能必须重新授权您的应用程序。重新验证将返回与问题中代码 sn-p 中的 result
相同的 UserCredential
对象。
另一种选择是使用提供商自己的 SDK 并在需要时刷新令牌。
【讨论】:
你能给我一些资源来登录提供商自己的 SDK,在这种情况下,Google 使用 Firebase,因为重新验证对用户来说很乏味。以上是关于如何通过 Firebase Google 身份验证获取带有刷新令牌的 YouTube 数据 API 访问令牌?的主要内容,如果未能解决你的问题,请参考以下文章
检查用户是不是在 Android 的 Firebase Google 身份验证中首次通过身份验证
通过 Firebase 身份验证使用 Google Play 游戏
将 Google 身份验证令牌与 Firebase 一起使用
为啥在通过 Firebase 身份验证传递 id 令牌时,此 CORS 身份验证的 Google Cloud 函数会返回 403?