Я работаю с next-auth
и пытаюсь получить доступ к сеансу с getServerSideProps
.
Для этого мне нужно передать ему объекты контекстного запроса и контекстного ответа, но VScode показывает жалобу на то, что эти свойства не существуют в объекте контекста.
Здесь я вижу, как использовать next-auth в getServerSideProps. Это мой код:
import React from "react";
import type { GetServerSideProps } from "next";
import { getServerSession } from "next-auth/next";
import { authOptions } from "../../pages/api/auth/[...nextauth]";
function EditProfile() {
return (
<>
....
</>
);
}
export async function getServerSideProps(context: GetServerSideProps) {
const session = await getServerSession(context.req, context.res, authOptions);
return {
props: {},
};
}
export default EditProfile;
И жалобы, которые я получаю:
Property 'req' does not exist on type 'GetServerSideProps<{ [key: string]: any; }, ParsedUrlQuery, PreviewData>'
И
Property 'res' does not exist on type 'GetServerSideProps<{ [key: string]: any; }, ParsedUrlQuery, PreviewData>'
Измените объявление типа, как показано ниже, потому что GetServerSideProps
— это тип функции, то есть ее параметр, context
и возвращаемое значение.
import { GetServerSideProps } from "next";
export const getServerSideProps: GetServerSideProps = async (context) => {
// ...
return {
props: {},
};
};
Вы получаете эти ошибки, потому что предположили, что это только тип параметра.