此Firebase云功能应使用Cloud APIs 域范围的委派,以便任何用户都可以在Firebase数据库更改时更新某些 G Suite管理面板用户信息
我应该使用哪种方法来获取我的应用程序的domian范围委派。
firebase.auth.GoogleAuthProvider()
google.auth.OAuth2
new GoogleAuth()
我没有连接关于Google Identity Platform的点,我被困here at this step。 firebase托管的nodejs应用程序如何为Google API请求组建Web和访问令牌?
Firebase项目使用Google Cloud Platform项目,所以
我有......
service account actor
GCP-控制台我应该使用......
Firebase :也许会查看whitelisting area of Google OAuth2 settings,和/或使用services.json I got from firebase。
通过googleapis Google API :即使我使用firebase.auth.GoogleAuthProvider()
来验证用户,也许可以使用google.auth.OAuth2
从GCP获取域范围的授权(比如app或计算引擎)
Google Auth :同样,即使我使用firebase.auth.GoogleAuthProvider()
验证用户,也许可以使用new GoogleAuth()
获取域范围的委派来自GCP(如app或计算引擎)
我已经学会了:
googleapis
不适用于客户端(浏览器)。我现在正尝试在Firebase云功能中使用它答案 0 :(得分:0)
使用googleapis
与JWT Service Tokens进行服务帐户身份验证。
以下代码部署到Firebase云功能,日志似乎表明身份验证成功。
Firebase功能日志
NodeJS代码
// Firebase Admin SDK
const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
// Google APIs
const googleapis = require('googleapis')
const drive = googleapis.drive('v3')
const gsuiteAdmin = googleapis.admin('directory_v1')
// Service Account Key - JSON
let privatekey = require("./privatekey.json")
let jwtClient = new googleapis.auth.JWT(
privatekey.client_email,
null,
privatekey.private_key,
['https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/admin.directory.user'])
// Firebase Cloud Functions - REST
exports.authorize = functions.https.onRequest((request, response) => {
//authenticate request
jwtClient.authorize(function (err, tokens) {
if (err) {
console.log(err)
return
} else {
console.log("Successfully connected!")
}
response.send("Successfully connected!")
})
})