Apabila menggunakan Express, saya pernah menyimpan pengguna seperti request.user
:
import jwt from "jsonwebtoken"; import asyncHandler from "express-async-handler"; import User from "../models/userModel.js"; const protect = asyncHandler(async (req, res, next) => { let token; token = req.cookies.jwt; if (token) { try { const decoded = jwt.verify(token, process.env.JWT_SECRET); req.user = await User.findById(decoded.userId).select("-password"); next(); } catch (error) { res.status(401); throw new Error("Not authorized , invalid token"); } } else { res.status(401); throw new Error("Not authorized , no token"); } }); export { protect }; And I was able to get the current user like this : const createPost = asyncHandler(async (req, res) => { const { content, image } = req.body; const user = req.user;
Tetapi bagaimana untuk melakukan ini menggunakan penghalaan API NextJS 13 dan perisian tengah serta cara menggunakan kuki. Baru kepada NextJS jadi sebarang bantuan amat dihargai.
Dalam Next.js, anda boleh menggunakan sambungan kuki pada NextRequest dan NextResponse untuk membaca dan memanipulasi kuki. Kaedah khusus adalah seperti berikut:
Pertama, anda perlu mengimport kuki dari seterusnya/pengepala:
Kemudian, anda boleh mendapatkan biskut seperti ini:
Untuk menetapkan kuki, anda perlu mengembalikan respons baharu menggunakan pengepala Set-Cookie:
Anda juga boleh menggunakan objek NextRequest untuk membaca kuki:
Untuk permintaan masuk, kuki mempunyai kaedah berikut: dapatkan, dapatkanSemua, tetapkan dan padam kuki. Anda boleh gunakan perlu menyemak sama ada kuki wujud, atau kosongkan untuk memadam semua kuki.
Untuk respons keluar, kuki mempunyai kaedah berikut dapatkan, dapatkanSemua, tetapkan dan padam.
Berikut adalah contoh cara menggunakan kaedah ini: