php Editor Apple, hello! Mengenai soalan anda, pembolehubah NEXTAUTH_SECRET adalah berbeza daripada rahsia bahagian belakang yang digunakan untuk menjana token JWT. NEXTAUTH_SECRET ialah kunci yang digunakan dalam NextAuth.js untuk menyulitkan kuki sesi, dan rahsia hujung belakang ialah kunci yang digunakan untuk mengesahkan dan menandatangani token JWT. Walaupun kedua-dua kunci digunakan untuk menjamin pengesahan pengguna sedikit sebanyak, peranannya dan cara ia digunakan adalah berbeza. Pastikan anda menyediakan dan melindungi kunci ini dengan betul apabila menggunakan NextAuth.js dan JWT untuk memastikan keselamatan aplikasi anda. Semoga ia membantu! Jika anda mempunyai sebarang pertanyaan lagi, sila berasa bebas untuk terus berunding.
Saya sedang menulis aplikasi bahagian hadapan menggunakan NextJS dan menggunakan pengesahan seterusnya untuk pengesahan (e-mel, log masuk kata laluan). Bahagian belakang saya ialah pangkalan kod berbeza yang ditulis dalam GoLang, jadi apabila pengguna log masuk, ia menghantar permintaan ke titik akhir hujung belakang Golang dan mengembalikan token JWT, yang dijana seperti ini:
config := config.GetConfig() atClaims := jwt.MapClaims{} atClaims["authorized"] = true atClaims["id"] = userId atClaims["email"] = email atClaims["exp"] = time.Now().Add(time.Hour * 24 * time.Duration(config.LoginExpire)).Unix() token := jwt.NewWithClaims(jwt.SigningMethodHS256, atClaims) signedToken, err := token.SignedString([]byte(config.AppSecret))
Masalah saya sama dengan nilai NEXTAUTH_SECRET
这个环境变量有关,我从 Next Auth 文档中看到,正如你在 Go 中生成令牌时看到的那样,我使用这个 config.AppSecret
(后端的环境变量),NEXTAUTH_SECRET
需要吗与后端的 config.AppSecret
dan saya tidak pasti apa perbezaannya.
Terima kasih terlebih dahulu
Jawapan ringkasnya, tidak. NEXTAUTH_SECRET
和 GoLang 后端中的 config.AppSecret
dalam Next.js tidak perlu sama; ia mempunyai tujuan yang berbeza dalam timbunan aplikasi anda.
NEXTAUTH_SECRET: Digunakan dalam Next.js untuk mendapatkan token NextAuth, yang penting untuk keselamatan sesi dalam rangka kerja NextAuth.
Rahsia Backend (config.AppSecret): Digunakan dalam bahagian belakang GoLang untuk menandatangani token JWT, memastikan integriti dan ketulenan token hujung belakang.
Jika anda ingin menggunakan token yang dijana bahagian belakang dalam aplikasi NextJs anda, anda harus melakukan perkara berikut:
Simpan Token: Simpan token di lokasi yang selamat di sebelah pelanggan. Amalan biasa termasuk menggunakan localStorage
、sessionStorage
或 cookies
. Saya lebih suka menggunakan kuki kerana ia dihantar secara automatik dengan setiap permintaan dan mempunyai ciri keselamatan seperti sifat HttpOnly dan SameSite.
Hantar token pada permintaan seterusnya: Apabila membuat permintaan ke bahagian belakang, biasanya masukkan token ini dalam pengepala Kebenaran. Pendekatan standard adalah menggunakan seni bina Bearer, seperti yang ditunjukkan di bawah: Authorization: Bearer <your_token_here>
.
Pengesahan Token: Bahagian belakang anda akan mengesahkan token ini pada setiap laluan yang dilindungi untuk mengesahkan permintaan. Token dinyahkod menggunakan kunci yang sama (config.AppSecret) yang digunakan untuk menandatangani.
Selain itu, anda juga perlu mengendalikan tamat tempoh token, menggunakan saluran https untuk penghantaran, dan melaksanakan perlindungan CSRF jika menggunakan kuki untuk menyimpan token.
Walau bagaimanapun, jika anda ingin memastikan mekanisme pengesahan bahagian hadapan dan bahagian belakang berasingan dan selamat, anda boleh menggunakan NEXTAUTH_SECRET
来保护 NextAuth 会话,并为 GoLang 后端使用 config.AppSecret
untuk menandatangani token JWT dengan selamat dalam aplikasi Next.js anda.
Atas ialah kandungan terperinci Adakah pembolehubah NEXTAUTH_SECRET sama dengan rahsia bahagian belakang yang digunakan untuk menjana token JWT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!