【发布时间】:2022-12-03 10:01:16
【问题描述】:
我正在使用 Firebase v8 和 GoogleAuthProvider。
Firebase documentation 提供了以下代码来验证用户。
import { getAuth, signInWithPopup, GoogleAuthProvider } from "firebase/auth";
const auth = getAuth();
signInWithPopup(auth, provider).then((result) => {
const credential = GoogleAuthProvider.credentialFromResult(result);
const token = credential.accessToken;
const user = result.user;
})
问题
- Google的Using OAuth 2.0 to Access Google APIs文章推荐增量授权(不是Firebase,但是推荐很明确)
通常最好的做法是递增地请求范围,在 需要时间访问,而不是预先。例如,一个应用程序 希望支持将事件保存到日历的不应该请求 在用户按下“添加到日历”之前访问 Google 日历 按钮。
AFAICT,如果不重新验证用户身份,就无法通过 Firebase 实现增量授权。虽然可以使用addScope将作用域添加到GoogleAuthProvider,但需要随后调用signInWithPopup(即用户需要重新验证)。有没有办法只提示授权(例如驱动器访问)而不重新验证?
-
假设访问令牌是短暂的,是否可以使用 Google ID 令牌获取新的访问令牌?重新验证用户是获取新访问令牌的唯一方法吗?
-
有没有办法确定访问令牌是否已过期?
-
【问题讨论】:
标签: firebase firebase-authentication google-oauth