Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

user guide #6

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

user guide #6

wants to merge 3 commits into from

Conversation

yccs-26
Copy link

@yccs-26 yccs-26 commented Sep 14, 2020

RABUMS (서버) : NERA(클라이언트)가 요청하는 파일에 대한 응답을 할 수 있도록 구성된 시스템이다.
NERA(클라이언트) : RABUMS와 통신하는 대상이며 사용자와 직접적으로 연결되어 있는 시스템이다.

hash 함수란?
원본 데이터를 소문자, 대문자, 그리고 숫자의 혼합으로 문자열로 치환하는 함수이다.
ex) "HELLO WORLD" => "SEVMTE8gV09STEQ="
=> "ae1306b81859d3c99e5fa9bf29c7e3ad97965af7e4644b7802e0c00ee73c5839"

hash 함수를 사용하여 pw를 안전하게 저장한다.
=> HASH( HASH ( HASH(PW) ) + HASH(token) ) 로 만든 값을 userPw로 이용한다.

토큰(token)이란?
서버(RABUMS)와 클라이언트(NERA)가 서로 데이터 교환을 위해 클라이언트에 부여하는 객체이다.
세션 식별자(Session ID)라고 하기도 한다. (토큰이 유출된 경우 폐기한 후 새로운 토큰을 사용한다.)

회원인증 절차

  1. ID와 PW를 입력한다.
  2. NERA(클라이언트)가 사용자로부터 정보를 받으면 접근 허가 토큰(token)을 사용하여 정보가 맞는지 RABUMS(서버)에 확인을 요청한다.
  3. token, userId, 그리고 userPw가 RABUMS에 있는 정보와 일치하면 NERA에 응답한다.

응답 내용 : _id, userId, userName, userNumber

  • _id : RABUMS에서 관리하는 사용자들의 고유 식별 번호
  • userId : 사용자 id
  • userName : 사용자 이름
  • userNumber : 사용자 학번
  1. 옳지 않는 요청에는 메세지를 보낸다.
  • 400 : 잘못된 요청 ; 요청에 token, userId, userPw가 정상적으로 확인되지 않는다.
  • 401 : 유효하지 않은 token
  • 403 : 회원가입되어 있지 않은 회원이거나 ID나 PW가 잘못 입력되었다.
  • 500 : 서버 내부 오류

@iwanhae
Copy link
Member

iwanhae commented Sep 14, 2020

hash 함수란?
원본 데이터를 소문자, 대문자, 그리고 숫자의 혼합으로 문자열로 치환하는 함수이다.

-> 이부분 아니에요, Rabums에서 사용하는 Hash는 제가 새로 정의한 해시함수로 편의상 프로그램 내에서는 RabumsHash 로 쓰고있어요. 아래 코드들 참고하세요.
https://github.com/CSUOS/rabums/blob/master/pkg/utils/hashing.go#L10
https://github.com/CSUOS/rabums/blob/master/rabums_view/pages/register.vue#L101

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants