열심히 저도 만들어 보고 있습니다. 정보
열심히 저도 만들어 보고 있습니다.본문
오늘은 레지스트하는 것을 만들어 봤습니다.
RESTful의 입출력에 대한 정의가 필요합니다.
같이 만들긴 힘들어도 가능하면 입출력에 대한 포맷을 같게 또는 비슷하게.
그래야 프런트엔드 단에서 코드를 같게 또는 아주 조금만 수정해도 되게..
회원 가입시에 필요한 정보가 아래와 같습니다.
그래서 우선 이 정보만 넣어서 토큰을 만드는 과정입니다.
입력 정보
{
"member":{
"mbId": "test01",
"mbEmail": "*** 개인정보보호를 위한 이메일주소 노출방지 ***",
"mbPassword": "test01",
"mbName": "test01name",
"mbNick": "test01nick",
"mbMailling": 1,
"mbOpen": 1
}
}
> "member"를 두는 이유는 추측해 보건데, 보통 프라이머리 아이디를 `id`라고만 사용하는데, 그누보드, 씨아이보드등은 이름을 mb_no, mem_id 식으로 member라는 것의 줄임말을 앞에다 붙여주는 것 같습니다.
> 그런데 위와 같이 "member"를 앞에다 두면, 변수를 볼때, member.id 식으로 표현을 할 수가 있기 때문에 이 `id`가 무엇에 속해 있는지를 금방 알수가 있습니다.
>> 초기에는 혹시 몰라서 mb라는 접두사를 넣어 두겠습니다.
>> 이 부분도 앞으로 어떻게 정할지를 서로 정해 놓으면 좋을 것 같습니다.
{
"member": {
"mbId": "test01",
"mbName": "test01name",
"mbNick": "test01nick",
"mbEmail": "*** 개인정보보호를 위한 이메일주소 노출방지 ***",
"mbMailling": 1,
"mbOpen": 1,
"mbNickDate": "2021-01-16",
"mbOpenDate": "2021-01-16",
"mbNo": 1,
"created": "2021-01-16T22:40:32.090Z",
"updated": "2021-01-16T22:40:32.090Z",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtYklkIjoidGVzdDAxIiwiaWF0IjoxNjEwODM2ODMyLCJleHAiOjE2MTA4NDA0MzJ9.cVFKgktCnfUsTknppsMi2x7Rfo-oSpaS6Ej8I2U02zw"
}
}
> 프런트엔드도 마찬가지일 것 같습니다. member.id로도 충분할 것 같습니다.
> 당분간은 member.mbId로.. (대문자가 들어가면 타이핑도 힘듬. 캐멀케이스인가..)
> 회원가입시에 토큰을 주는 방법이 있고, 안주는 방법도 있습니다
>> 그누보드에서는 가입과 동시에 바로 접속이 가능합니다.
>> 어떤 사이트는 가입후에 꼭 로그인을 다시해야 되는 경우입니다.
위의 토큰은 https://jwt.io/ 에서 페이로드를 체크해 볼수 있습니다.
시크릿 키 : thisIsASecretKey
{
"mbId": "test01",
"iat": 1610836832,
"exp": 1610840432
}
> 아이디 말고 다른 정보는 필요할 것 같지 않아서...
> 토큰 익스파이어는 1시간입니다. 1시간 지나면 사용을 못하니 다시 로그인해야 됩니다.
아래는 로그인시..
{
"member":{
"mbId": "test01",
"mbPassword": "test01"
}
}
!-->!-->!-->!-->
2
댓글 5개
그리고 변수만으로 이해하기 힘든 부분은 몇개 더 수정할 예정입니다.
mb_open 은 정보공개 필드 같은데.. to_public(toPublic) 나 infoOpen 식으로 변수만으로도 어떤 의미인지를 알 수 있게..
최근 ORM을 쓰다 보면, 정말 설계를 다시 하고 싶은 욕망이 생기죠.
created_at, id, ref ...
이것도 하면서 조금씩 바뀔수도 있겠지만..