授权使用来自 Google API 的数据 return
Authorizing using data return from a Google API
我是 Firebase 的新手,所以请原谅我缺乏基本知识。我正在为一个项目评估它。
Firebase 可以很好地处理 Google 身份验证。但是,如何根据 Google API 返回的信息授权用户呢?当 Firebase 非常依赖客户端时,我该如何确保安全性?
例如,假设我想根据 Google 图书 API 是否确认用户拥有一本书来限制对 firebase 数据的访问。我知道在授权用户后我可以像这样将数据传递给令牌(这是半伪代码):
ref.child("users").child(authData.uid).set({
provider: authData.provider,
ownsBook: getBookInfo.ownsBook()
});
我想使用 "ownsBook" 参数来决定用户是否可以访问 firebase 数据,但由于这一切都必须在客户端发生,所以如何阻止某人通过手动覆盖它JS 控制台?
您通常会如何在 Firebase 中执行此类操作?
我认为 Firebase 不会公开 Google 书籍 API 中的信息(但我可能是错的)。
除此之外:您将使用 Firebase 的安全规则限制对数据的访问:https://www.firebase.com/docs/security/quickstart.html。
因此,如果我们假设您在这样的数据结构中拥有书籍和所有权:
root
users
google:3246734
booksOwned
book:743267
books
book:743267
title....
您的规则可能类似于
{
"rules": {
"book": {
$book_id: {
".read":
"root.child(auth.uid).booksOwned.child($book_id).exists()"
}
}
}
}
}
因此,为了获得对特定图书(由 $book_id
表示)的访问权限,我们检查用户 booksOwned
节点中是否存在该图书 ID。
我是 Firebase 的新手,所以请原谅我缺乏基本知识。我正在为一个项目评估它。
Firebase 可以很好地处理 Google 身份验证。但是,如何根据 Google API 返回的信息授权用户呢?当 Firebase 非常依赖客户端时,我该如何确保安全性?
例如,假设我想根据 Google 图书 API 是否确认用户拥有一本书来限制对 firebase 数据的访问。我知道在授权用户后我可以像这样将数据传递给令牌(这是半伪代码):
ref.child("users").child(authData.uid).set({
provider: authData.provider,
ownsBook: getBookInfo.ownsBook()
});
我想使用 "ownsBook" 参数来决定用户是否可以访问 firebase 数据,但由于这一切都必须在客户端发生,所以如何阻止某人通过手动覆盖它JS 控制台?
您通常会如何在 Firebase 中执行此类操作?
我认为 Firebase 不会公开 Google 书籍 API 中的信息(但我可能是错的)。
除此之外:您将使用 Firebase 的安全规则限制对数据的访问:https://www.firebase.com/docs/security/quickstart.html。
因此,如果我们假设您在这样的数据结构中拥有书籍和所有权:
root
users
google:3246734
booksOwned
book:743267
books
book:743267
title....
您的规则可能类似于
{
"rules": {
"book": {
$book_id: {
".read":
"root.child(auth.uid).booksOwned.child($book_id).exists()"
}
}
}
}
}
因此,为了获得对特定图书(由 $book_id
表示)的访问权限,我们检查用户 booksOwned
节点中是否存在该图书 ID。