第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何保護(hù)firebase云功能HTTP端點僅允許Firebase經(jīng)過身份驗證的用戶?

如何保護(hù)firebase云功能HTTP端點僅允許Firebase經(jīng)過身份驗證的用戶?

如何保護(hù)firebase云功能HTTP端點僅允許Firebase經(jīng)過身份驗證的用戶?使用新的firebase云功能,我決定將我的一些HTTP端點移動到firebase。一切都很好......但我有以下問題。我有兩個端點由HTTP觸發(fā)器(云功能)構(gòu)建用于創(chuàng)建用戶并返回Firebase Admin SDK生成的自定義令牌的API端點。用于獲取特定用戶詳細(xì)信息的API端點。雖然第一個端點很好,但對于我的第二個端點,我希望僅為經(jīng)過身份驗證的用戶保護(hù)它。意思是擁有我之前生成的令牌的人。我該如何解決這個問題?我知道我們可以使用云函數(shù)獲取Header參數(shù)request.get('x-myheader')但有沒有辦法保護(hù)端點就像保護(hù)實時數(shù)據(jù)庫一樣?
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗 獲得超11個贊

正如@Doug所提到的,您可以firebase-admin用來驗證令牌。我已經(jīng)建立了一個簡單的例子:

exports.auth = functions.https.onRequest((req, res) => {
  cors(req, res, () => {
    const tokenId = req.get('Authorization').split('Bearer ')[1];
    return admin.auth().verifyIdToken(tokenId)
      .then((decoded) => res.status(200).send(decoded))
      .catch((err) => res.status(401).send(err));
  });});

在上面的例子中,我也啟用了CORS,但這是可選的。首先,你得到Authorization標(biāo)題并找出答案token。

然后,您可以firebase-admin用來驗證該令牌。您將在響應(yīng)中獲得該用戶的已解碼信息。否則,如果令牌無效,則會拋出錯誤。

我希望它有所幫助。


查看完整回答
反對 回復(fù) 2019-08-26
?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗 獲得超10個贊

正如@Doug所提到的,您可以使用可調(diào)用函數(shù)來從客戶端和服務(wù)器中排除一些樣板代碼。

Exampale可調(diào)用函數(shù):

export const getData = functions.https.onCall((data, context) => {
  // verify Firebase Auth ID token
  if (!context.auth) {
    return { message: 'Authentication Required!', code: 401 };
  }
  // do your things..
  const uid = context.auth.uid;
  const query = data.query;
  return { message: 'Some Data', code: 400 };});

它可以直接從您的客戶端調(diào)用,如下所示:

firebase.functions().httpsCallable('getData')({query}).then(result => console.log(result));


查看完整回答
反對 回復(fù) 2019-08-26
  • 3 回答
  • 0 關(guān)注
  • 567 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號