[英]How do I get FormData values in Server-side after XMLHttpRequest in client-side?
[英]Firebase: How do I get the ID Token for a signed-in user on the client side if I am using server-side session cookies?
我正在使用帶有 Express 和 Firebase 托管的 Firebase 雲功能來為我的多頁站點提供服務。 我已經成功實現了服務器端 cookies,如此處所述,並如下實現:
function verifyLogin(request, response, next) {
const sessionCookie = request.cookies.__session || '';
firebase.auth().verifySessionCookie(sessionCookie, true /** checkRevoked */ )
.then((decodedClaims) => {
//serve content for user
return next();
}).catch(error => {
// Session cookie is unavailable or invalid. Force user to log in.
console.log(error);
response.redirect('/login');
return;
});
}
app.get('/', verifyLogin, (request, response) => {
var page_title = "Home";
response.render('index', {
page_title,
});
});
我正在使用 Firebase Web SDK (JavaScript) 訪問 Z035489FF8D092741943E4 Cloud Firestore。 為此,我需要在客戶端獲取當前登錄用戶的 idToken,如下所示:
firebase.auth().onAuthStateChanged(firebaseUser => {
if (firebaseUser) {
firebase.auth().currentUser.getIdTokenResult()
.then((idTokenResult) => {
// Access the Firebase Cloud Firestore here
});
}
});
這對我來說似乎是多余的,因為我已經知道哪個用戶是通過我的服務器 cookie 登錄的,但是如果不再次調用 Firebase Auth,我還能如何獲得 idToken?
有沒有辦法以某種方式從我的 session cookie 中推斷出來,並將其從我的雲 function 作為變量傳遞給我的客戶端?
還是有另一種我忽略的哲學方式來看待這個問題?
同樣,您可以使用onAuthStateChanged()
監聽用戶登錄 state 更改,也可以使用onIdTokenChanged () 監聽用戶 ID 令牌更改。 僅當您附加的觀察者顯示出現新令牌時(例如,當 SDK 每小時刷新一次時),您才需要使用新令牌。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.