sách gpt4 ăn đã đi

bảo vệ các tuyến đường trong js tiếp theo bằng middleware + next-auth (sử dụng middleware + Next-auth để bảo vệ các tuyến đường trong Next JS)

In lại Tác giả: trợ lý lỗi Thời gian cập nhật: 25-10-2023 14:47:23 31 4
mua khóa gpt4 giày nike



xin vui lòng tôi đang cố gắng bảo vệ một số tuyến đường với phần mềm trung gian NextJS nếu tôi không được xác thực, tôi đang sử dụng next-auth để xác thực và từ tài liệu này thì tệp middleware.ts sẽ như thế này

Tôi đang cố gắng bảo mật một số tuyến đường bằng phần mềm trung gian NextJS nếu tôi chưa được xác thực, tôi đang sử dụng Next-auth để xác thực và từ tài liệu này, tệp MIDDLWAR.TS sẽ trông như thế nào


xuất {mặc định} từ "next-auth/middleware";

xuất khẩu const config = {
bộ so khớp: "/phòng/:id*"
};

Vấn đề hiện tại là ngay cả khi tôi đã xác thực và tôi cố gắng vào tuyến phòng, nó vẫn chuyển hướng tôi đến một trang để đăng nhập lại và ngay cả khi tôi làm như vậy, nó vẫn chuyển hướng tôi trở lại, giống như một vòng lặp vậy. Tôi không biết mình có thể đã làm sai điều gì. Có ai biết điều gì có thể gây ra điều này không?

Vấn đề với Rn là ngay cả khi tôi xác thực và cố gắng đi đến đường dẫn phòng, nó vẫn chuyển hướng tôi đến một trang để đăng nhập lại và ngay cả khi tôi làm như vậy thì nó vẫn chuyển hướng tôi một lần nữa, giống như chu kỳ bây giờ. Tôi không biết mình có thể đã làm gì sai. Có ai biết lý do có thể là gì cho việc này không?


Đây là API xác thực tiếp theo của tôi:

Đây là giao diện xác thực tiếp theo của tôi:


nhập NextAuth từ "next-auth";
nhập GoogleProvider từ "next-auth/providers/google";
nhập { PrismaClient } từ "@prisma/client";
nhập { generateRandomString } từ "@/utils/random";

const prisma = new PrismaClient();

trình xử lý const = NextAuth({
nhà cung cấp: [
Nhà cung cấp Google({
clientId: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
ủy quyền: {
tham số: {
nhắc nhở: "đồng ý",
access_type: "ngoại tuyến",
response_type: "mã"
}
}
})
],
bí mật: process.env.JWT_SECRET!,
gọi lại: {
async signIn({ người dùng, hồ sơ }) {
const currentUser = đang chờ prisma.user.findUnique({
trong đó: { email: user.email! }
});

nếu (! existingUser) {
const randomSuffix = generateRandomString();
const firstName = tên người dùng?.split(" ")[0].toLocaleLowerCase();
chờ prisma.user.create({
dữ liệu: {
email: user.email!,
tên: user.name!,
tên người dùng: `${firstName}#${randomSuffix}`,
hình ảnh: user.image || hồ sơ?.image || null
}
});
}

trả về giá trị đúng;
},

async jwt({mã thông báo, người dùng}) {
nếu (người dùng) {
token.id = user.id;
}

mã thông báo trả về;
}
}
});

export {trình xử lý dưới dạng GET, trình xử lý dưới dạng POST };

Thêm câu trả lời
Khuyến nghị câu trả lời tuyệt vời
Thêm câu trả lời
31 4 0
trợ lý lỗi
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress