簡體   English   中英

將 js-cookie 值設置為 firebase 令牌

[英]set js-cookie value to firebase token

可以將 cookie 的值設置為令牌嗎? 我正在使用 js-cookie、Firebase auth/firestore 和 Next.js 並且我的 cookie 在我的 handleUser function 中設置如下:

  const handleUser = async (rawUser) => {
    if (rawUser) {
      const user = await formatUser(rawUser)
      const { token, ...userWithoutToken } = user

      createUser(user.uid, userWithoutToken)
      setUser(user)

      cookie.set('colorizer-auth', token, {
        expires: 1
      })

      setLoading(false)
      return user
    } else {
      setUser(false)
      cookie.remove('colorizer-auth')

      setLoading(false)
      return false
    }
   }

並且令牌在此處被解碼並設置:

const formatUser = async (user) => {
  const decodedToken = await user.getIdTokenResult(true);
  const { token, expirationTime } = decodedToken;
  return {
    uid: user.uid,
    email: user.email,
    name: user.displayName,
    provider: user.providerData[0].providerId,
    photoUrl: user.photoURL,
    token,
    expirationTime,
  }
}

我在 cookies 中看到了一些使用 Firebase Auth ID 令牌( access_token )本身的項目,但該令牌僅在 1 小時內有效。 您還必須安全地存儲refresh_token ,以便在 cookie 過期后刷新它。

但是,我建議使用session cookies代替此類 SSR 應用程序。 您可以設置 5 分鍾到 2 周的過期時間。 最好在過期后重新驗證用戶身份。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM