全棧身份認證實作:使用 Next.js、NextAuth.js 和 MongoDB-4. NextAuth設定

Claire Wei
ClaireWei
Published in
Dec 13, 2023

使用 NextAuth.js 進行身份認證,包括配置和使用者數據處理。

參考: NextAuth.js (Initialization)、NextAuth.js (Options)

4–1. 創建 NextAuth.js 配置檔案

  • 在 app/api/auth/[…nextauth] 資料夾下,建立一個新檔案名為 route.ts;在 lib 資料夾下,建立一個名為 nextauth-options.ts 的新檔案,於 route.ts import nextauthOptions。
  • 將 NEXTAUTH_URL 、 NEXTAUTH_SECRET 存放在 .env.local。
  • NEXTAUTH_SECRET 使用 `openssl rand -base64 32` 指令生成隨機字串以達到不可預測性。
Tool: openssl
  • 建立 providers 資料夾,新增 auth-provider.tsx,將 AuthProvider 添加到 layout.ts (RootLayout) 中。

程式碼

單元重點

  • 建立 app/api/auth/[…nextauth]/route.ts 及 lib/nextauth-options.ts,並將 NEXTAUTH_URL、NEXTAUTH_SECRET 存放在 .env.local。
  • 在 layout.ts (RootLayout) 加上 AuthProvider 。

重要概念

secret 用於驗證 token 的真實性和安全性 ,而 token 則用來驗證伺服器之間資訊交換的安全。

參考資料

NextAuth.js (Initialization)-https://next-auth.js.org/configuration/initialization

NextAuth.js (Options)-https://next-auth.js.org/configuration/options

小工具OpenSSL-https://www.cryptool.org/en/cto/openssl

回到目錄
https://medium.com/p/3d2a3ec1d3b6

--

--