Skip to content

Edison API :: Token

Chalk edited this page Jun 2, 2017 · 5 revisions

개요

Edison API에서는 토큰으로 JSON Web Token을 사용하며, Payload에는 토큰에 해당하는 User 문서가 그대로 들어갑니다.

JWT?

JWT은 필요한 유저 정보를 내장할 수 있기 때문에 DB에 다시 쿼리를 날릴 필요가 없으며, HMAC 알고리즘으로 서명되어 있어 신뢰할 수 있습니다. 물론 RSA를 사용할 수도 있고요! 자세한 정보는 여기에 가서 찾아 보세요.

Payload 구조

{
  "id": 907,
  "username": "ChalkPE",
  "name": "박준영",
  "email": "[email protected]",
  "gender": "M",
  "userType": "S",
  "information": {
    "serial": "2409",
    "number": 9,
    "clazz": 4,
    "grade": 2
  },
  "isHassan": true,
  "tokenNumber": 14,
  "place": "592eb2873328542f45d345c4",
  "isAdmin": true,
  "iat": 1496360272,
  "exp": 1496367472
}
Key Type Value ?
id number 디미고 API 내부에서 사용하는 고유 ID 🔑
username string 디미고 API 로그인에 사용하는 유저네임 🔑
name string 실명
email string 이메일
gender char 성별 🔗
userType char 유저 유형 🔗
information object 추가 정보 🔗
isHassan boolean 핫산 여부
tokenNumber number 현재 발행된 토큰의 고유번호
place ObjectId 현재 유저가 있는 장소의 ObjectId
isAdmin boolean 어드민 여부 교사 및 핫산
iat number 토큰 생성일의 타임스탬프 단위: 초
exp number 토큰 만료일의 타임스탬프 단위: 초

gender

Type Value
M 남자
F 여자
NULL 알 수 없음

userType

Type Value
S 학생 (졸업생 포함)
T 교사
D 생활관교사
P 학부모
O 손님

information

userTypeS인 경우

Key Value ?
grade 학년 1-3
clazz 1-6
number 번호
serial 학번 GCNN
Clone this wiki locally