![](/img/trans.png)
[英]How to refresh firebase IdToken with apollo Reactjs client
[英]How to get a FireBase idToken on the server
根據文檔,要驗證用戶角色,需要查看當前用戶的idToken。 但是從哪里得到它呢? 我剛在客戶端找到收據
我試圖這樣做:
app.get("/admin-cp", function (req, res) {
const sessionCookie = req.cookies.session || "";
admin
.auth()
.verifySessionCookie(sessionCookie, true )
.then((userData) => {
console.log("Logged in:", userData.email)
console.log('Авторизован. Доступ в админ панель открыт')
const customToken = admin.auth().createCustomToken(userData.uid)
admin
.auth()
.verifyIdToken(customToken)
.then((claims) =>
{
if (claims.admin === true)
{
// Allow access to admin resource.
}
});
res.sendFile(path.join(initial_path, "admin-cp/main-admin_cp.html"));
})
.catch((error) => {
console.log('Не авторизован. Ошибка', error, ' отсутвует userData')
res.redirect("/login");
});
});
code: 'auth/argument-error',
message: 'First argument to verifyIdToken() must be a Firebase ID token string.'
理想情況下,您應該在 API 請求的標頭中從客戶端傳遞 ID 令牌。
const idToken = await firebase.auth().currentUser.getIdToken()
const res = await fetch('/api-url', { headers: { authorization: idToken } })
然后你可以在服務器端讀取令牌:
const idToken = req.headers.authorization;
if (!idToken) return res.status(401).send("Unauthorized")
// verify token using verifySessionCookie() here
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.