Giter Club home page Giter Club logo

house-rice-server's People

Contributors

bell2lee avatar

Watchers

 avatar  avatar

Forkers

shin-723

house-rice-server's Issues

[User] 회원가입 패스워드 암호화 저장

설명

회원가입에 회원의 패스워드를 암호화하여 저장한다. 이때 DB에 SALT를 사용하여 패스워드를 안전하게 저장한 값을 데이터베이스에 저장하여야한다. 관련 내용은 여기여기 를 참고한다.

  • 임의의 SALT를 생성하여 사용자의패스워드+SALT를 저장하고 SALT도 같이 저장한다.
  • crypto 와 같은 암호화 라이브러리를 사용하여 구현한다.

out of scpoe

  • 회원의 패스워드 안전도에 대한 검사는 고려하지 않는다.

[User] 회원정보 수정

설명

회원 정보를 수정 할 수 있는 API 를 구현한다. 회원의 username(통상 아이디라고 불리는 것)을 주소로 전달 받아 수정 하는 기능 구현.

  • 회원 정보가 없을때에는 STATUS CODE 404 와 함께 회원이 존재하지 않는다는 메시지를 return 한다.
  • 수정 후 STATUS CODE 200와 함께 수정 되었다는 내용을 return 한다.
  • password, name, nickname, phone 필드를 수정할 수 있도록한다.
  • 각 필드는 한개만 올 수도 여러개가 올 수도 있다. 이 경우 전달 받은 필드는 수정하고 전달받지 못한 필드는 수정하지 않는다.

API 요구사항

  • URI : /user/:username
  • METHOD : PATCH
  • BODY example :
{
    "password": "tset"
}

out of scope

  • 전달 받은 필드가 아무것도 없을때에는 고려하지 않는다.
  • _id 의 수정 가능 사항을 고려하지 않는다.
  • username 의 수정 가능 사항은 고려하지 않는다.

[User] 회원탈퇴

설명

회원 탈퇴를 할 수 있는 API 를 구현한다. 회원의 username(통상 아이디라고 불리는 것)을 주소로 전달 받아 삭제 하는 기능 구현.

  • 회원 정보가 없을때에는 STATUS CODE 404 와 함께 회원이 존재하지 않는다는 메시지를 return 한다.
  • 삭제 후 STATUS CODE 200와 함께 탈퇴 되었다는 내용을 return 한다.

API 요구사항

  • URI : /user/:username
  • METHOD : DELETE

[User] 개별 회원정보 조회

설명

개별 회원정보를 조회할 수 있는 API 를 구현한다. 회원의 username(통상 아이디라고 불리는 것)을 주소로 전달 받아 조회하는 기능을 구현.

  • 회원 정보가 없을때에는 STATUS CODE 404 와 함께 회원이 존재하지 않는다는 메시지를 return 한다.
  • 패스워드는 보여지지 않도록 구현해야한다.

API 요구사항

  • URI : /user/:username
  • METHOD : GET

[카테고리] 데이터 모델 설계

설명

카테고리를 저장할 수 있는 데이터 모델을 설계한다. 카테고리는 '한식', '일식', '디저트' 등 여러 내용들이 올 수 있으며 저장 내용으로 파일 이름을 명시 하여야한다.

즉 필수로 들어 가야할 필드는 다음과 같다.

  • 카테고리 이름
  • 아이콘 파일 경로
  • 이벤트 카테고리 여부

이후 필요하다고 생각되는 필드는 작업자가 판단하여 추가, 삭제 한다.

아이콘 파일 경로의 경우 AWS S3에 업로드 되는 파일 명이 들어갈 예정이며 s3 path는 명시하지 않는다.

[User] 로그인 및 회원권한

설명

권한

해당 시스템에서는 크게 회원을 3가지 분류로 나눈다.

  1. 비 로그인 사용자
  2. 로그인 사용자
  3. 관리자

위와 같이 사용자를 구분할 수 있는 필드를 추가하도록 한다.

로그인

각 API 별로 로그인 사용자를 식별할 수 있는 토큰을 발급하여 이후 API 사용 시 인증 헤더를 통해 토큰을 사용할 수 있는 시크릿 기반 키, 쿠키, 데이터 베이스에 저장하는 방식의 token 등을 사용하여 로그인 기능을 구현한다. 각종 라이브러리를 사용하여 구현하도록 한다. (ex : express-jwt)

  • 생성된 토큰은 생성된지 일정 기간 (ex 7일 경과) 동안 API 호출이 없으면 토큰을 만료시켜야한다.
  • secret key 기반 인증으로 구현할 경우 screct 키는 환경변수(dotenv)를 이용하여 가져와 사용하도록 한다. 소스코드에 screct 키가 노출되어서는 안 된다.
  • screct key 기반 인증으로 구현할 경우 환경변수 파일 .env는 ignore한다.
  • 회원이 존재하지 않을경우 메시지를 고려하지 않는다. 비 로그인 사용자에게는 최소한의 정보만 제공하여야 한다.

API 요구사항

  • URI : /api-token
  • METHOD : POST
  • BODY example :
{
    "username": "test",
    "password": "tset"
}

out of scope

  • 패스워드가 틀렸을때 사용자에게 이를 인지시키는 내용은 고려하지 않는다. "존재하지 않거나 패스워드가 틀렸습니다."와 같은 메시지를 리턴한다.

[User] 회원정보 전체 수정

설명

회원 정보를 수정 할 수 있는 API 를 구현한다. 회원의 username(통상 아이디라고 불리는 것)을 주소로 전달 받아 수정 하는 기능 구현.

  • 회원 정보가 없을때에는 STATUS CODE 404 와 함께 회원이 존재하지 않는다는 메시지를 return 한다.
  • 수정 후 STATUS CODE 200와 함께 수정 되었다는 내용을 return 한다.
  • password, name, nickname, phone 필드를 수정할 수 있도록한다.
  • 각 필드는 전체 다 받아야한다.

API 요구사항

  • URI : /user/:username
  • METHOD : PUT
  • BODY example :
{
    "password": "tset",
    "phone": "tset",
    "nickname": "tset",
    "name": "tset"
}

out of scope

  • 전달 받은 필드가 아무것도 없을때에는 고려하지 않는다.
  • _id 의 수정 가능 사항을 고려하지 않는다.
  • username 의 수정 가능 사항은 고려하지 않는다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.