본문 바로가기
프로그래밍/Portfolio Log

[Portfolio Log] NFT 가구점 8

by YuminK 2023. 12. 22.

오늘은 백엔드 API 작업을 마무리하고 API 문서를 간단하게 작성했다. 로그인, 로그아웃, 회원가입, 비밀번호 API 연동을 진행했다. 비밀번호 재설정 메일을 보내면 다음과 같은 포맷으로 보낸다. 랜덤으로 생성한 토큰 정보 및 시간을 유저 정보에 기입해놓고 링크를 타고 재설정을 하면 토큰, 비밀번호 값을 토대로 비밀번호 변경 처리를 진행한다. 유효시간이 지나거나 토큰에 맞는 유저 정보가 없는 경우는 처리되지 않는다. 

 

차크라 UI에서 제공하는 토스트 메시지를 사용하여 클라이언트의 오류 메시지를 처리해주고 있다. 그 외에도 nodejs CORS 처리, Axios에 대한 처리를 진행했다. axios는 클라이언트에서 비동기 프로그래밍의 방식(await, async)을 지원하고 호출하고 싶은 메소드에 따라 손쉽게 처리할 수 있다. 워낙 비슷한 인터페이스의 http 라이브러리가 많아서 익숙한 느낌이다. 

// Axios
import axios from "axios";

export const api = axios.create({
  baseURL: "http://localhost:3000",
  withCredentials: true,
  headers: {
    "Content-Type": "application/json",
  },
});

// try catch로 감싸서 사용
let res = await api.post("login", {
        email: emailText,
        password: passwordText,
      });

// Nodejs CORS 설정
app.use(
  cors({
    origin: "http://localhost:5173", // 접근 권한을 부여하는 도메인
    credentials: true, // 응답 헤더에 Access-Control-Allow-Credentials 추가
    optionsSuccessStatus: 200, // 응답 상태 200으로 설정
  })
);

 

API 하나씩 연동하고 메타마스크 + 블록체인 네트워크 연동하여 Solidity쪽 작업하고, Wallet 개발로 넘어갈 생각하고 있다. 하나씩 하나씩 구색이 잡혀 가는 듯 하다. (그래도 아직 한참 남은 듯;;) 꾸준히 해보자.


API 문서

=== 로그인 전에 사용할 수 있는 api ===

GET /loginStatus 

로그인 여부

 

GET /getWorldInfo/:id  

WORLD 정보를 구한다.

 

GET /getFollowings/:userId

특정 유저의 followings 정보를 구한다.

 

GET /getFollowers/:userId

특정 유저의 follower 정보를 구한다.

 

GET /getFurnitures/:userId

특정 유저의 가구 정보를 구한다.

 

GET /getFurnitures

DB에 등록된 모든 가구 정보를 구한다. 

 

GET /getUserInfo/:userId

유저 페이지에서 표출할 정보를 구한다.

 

GET /getComments/:targetId

유저 페이지의 방명록 정보를 구한다.

 

GET /getAllNftItems

DB에 존재하는 모든 NFT 정보를 구한다.

 

POST /login body email password 

로그인

 

POST /logout  

로그아웃

 

Post /register body name, email, password 

회원가입 

 

Post./resetPassword body token, password 

비밀번호 변경 요청 처리 token은 재설정 메일에 기입된다.

 

Post /requestResetMail body email 

비밀번호 재설정 메일 요청

 

==== 로그인 이후

GET /getWorldList/:userId 

유저의  방 정보와 팔로우하고 있는 유저의 정보를 넘긴다. (userId 기준)

 

Post /writeComment body: text, targetId

특정 유저의 방명록에 글을 작성한다.

 

Post /deleteComment body: commentId

자신이 작성한 댓글을 삭제한다.

 

POST /editComment body: commentId, text

 

POST /follow body: targetId

 

POST /unfollow body: targetId

 

Post editProfile body: name, desc, worldName, worldDesc

 

POST connectWorld/:id 

 

POST /disconnectWorld/:id

'프로그래밍 > Portfolio Log' 카테고리의 다른 글

[Portfolio Log] NFT 가구점 10  (0) 2023.12.24
[Portfolio Log] NFT 가구점 9  (1) 2023.12.23
[Portfolio Log] NFT 가구점 7  (0) 2023.12.19
[Portfolio Log] NFT 가구점 6  (1) 2023.12.17
[Portfolio Log] NFT 가구점 5  (1) 2023.12.17

댓글