tengo la siguiente función:
export async function getServerSideProps({ req }: any) { const user = ( await axios.get("http://localhost:4000/api/auth/status", { withCredentials: true, headers: { Cookie: `connect.sid=${req.cookies["connect.sid"]}` }, }) ).data; return { props: { user } }; }Que obtiene la cookie de los usuarios y luego realiza una solicitud HTTP usándola, ahora me hubiera gustado hacer esto en mi archivo _app.js; sin embargo, getServerSideProps() no parece ser utilizable allí. Esencialmente, me preguntaba cómo podría ejecutar esta función una vez y no tener que incluirla en cada archivo de una sola página, y luego poder acceder a su salida (usuario) desde cada página.
Cualquier sugerencia sería muy apreciada.
Tuve el mismo problema para usar getStaticProps. mi problema resuelto de esta manera. puede crear una carpeta lib en la raíz del proyecto. y cree el archivo getServerSide.js en lib .
export function makeServerSideProps(ns = {}) { return async function getServerSideProps(ctx) { return { props: await getUserProps(ctx, ns), }; }; } y defina la función para recibir datos de usuario getUserProps .
export async function getUserProps(ctx, ns = ['common']) { const user = ( await axios.get("http://localhost:4000/api/auth/status", { withCredentials: true, headers: { Cookie: `connect.sid=${req.cookies["connect.sid"]}` }, }) ).data; return user; } y use makeServerSideProps en cualquier página:
import { makeServerSideProps} from 'lib/getServerSide'; import User from 'components/Authentication/User'; const UserPage = () => { return ( <User/> ); }; export default UserPage ; const getServerSideProps = makeServerSideProps(); export { getServerSideProps };