簡體   English   中英

Next.js 在初始渲染時從 api 獲取令牌並存儲它

[英]Next.js fetch a token from an api on initial render and store it

我正在使用 next.js 構建一個應用程序,需要從 api 獲取來賓令牌並設置在 cookie 中,因為它在整個應用程序中都需要。 所以我想要的第一件事是在加載任何頁面之前在 cookie 中設置令牌。

我正在從 react 遷移,app.js 文件中有這個邏輯,它是一個單頁應用程序。

我嘗試將邏輯放在主頁的 getServerSideProps 中,它工作正常並且設置了 cookie,但問題是如果用戶 go 首先直接訪問任何其他頁面,cookie 將不存在。 為此,我們還必須在該頁面中復制此代碼。 (我不想要,因為有很多頁面)

然后在進一步的研究中,我知道我們可以在 _app 文件中使用 getInitialProps 來獲取所有頁面的初始數據,但它帶有一個警告(這會禁用執行自動 static 優化的能力,導致您的每個頁面應用程序要在服務器端呈現。)不確定它是否適合這種情況。

有沒有其他解決方案,比如我們可以在 _app 之上使用某種包裝器來獲取令牌服務器端並存儲它。 我是 next.js 的新手,請幫幫我。

如果您想與所有頁面共享相同的服務器端邏輯,您可以使用下一個中間件下一個自定義服務器

考慮到中間件使用 nodejs 運行時功能的子集,因此要執行 http 請求,您必須使用自定義服務器。 A如果您願意,您可以將 cookies 的設置/檢查留給中間件。

暫無
暫無

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

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