Serverless Sessions(2)

yonghee·2022년 6월 14일
0

baechu-market

목록 보기
23/32


암호화 된 쿠키 값을 받는 것 까지 구현한 상태이다. 이제 api url로 요청을 보내 내 프로필을 볼 수 있는지 테스트해야 할 차례이다.

//me.tsx
import { withIronSessionApiRoute } from "iron-session/next";
import { NextApiRequest, NextApiResponse } from "next";
import withHandler, { ResponseType } from "@libs/server/withHandler";
import client from "@libs/server/client";

declare module "iron-session" {
  interface IronSessionData {
    user?: {
      id: number;
    };
  }
}

async function handler(
  req: NextApiRequest,
  res: NextApiResponse<ResponseType>
) {
  console.log(req.session.user); 
  //브라우저가 받은 쿠키값을 확인해본다. 
    --> user의 id값 까지 잘 나오는 상태이다 이 id 값으로 user의 정보를 가져올수 있는 것이다.
  const profile = await client.user.findUnique({
    where: { id: req.session.user?.id },
//where 안에는 id가 req.session.user.id인 user를 찾도록 만든다. 
            
  });
  res.json({
    ok: true,
    profile,
   //마지막으로 user 데이터 값을 찾고 데이터 출력
  });
}

export default withIronSessionApiRoute(Handler("GET", handler), {
  cookieName: "carrotsession",
  password:
    "9845904809485098594385093840598df;slkgjfdl;gkfsdjg;ldfksjgdsflgjdfklgjdflgjflkgjdgd",
});
profile
필요할 때 남기는 날것의 기록 공간

0개의 댓글