Blockchain (Hyperledger Fabric)/작업 중인 Solution

Hyperledger Composer 모델링 작업 Ver. 0.0.3

김야키 2019. 3. 30. 01:35

모델링 작업 (.CTO파일)

작성날짜 2019.03.30

Ver 0.0.3

namespace org.example.mynetwork

/**
  Oauth를 사용해 로그인을 한 경우
  사용자 정보 유형을 추가
 */
enum OauthClass{
  o kakao		// kakao login
  o naver		// naver login
  o google		// google login
  o nothing	// 일반 회원가입
}

abstract participant User identified by userId{
  o String userId		// 사용자 식별 ID
  o String userEmail		// 사용자 식별 Email
  o String userName		// 사용자 이름
  o String userBirth		// 사용자 생년월일
  o String account default = "normal"		// 그룹 내 사용자 유형
  o Boolean state default = true			// 회비 지불 유/무
  o OauthClass oauth default = "nothing"	// 사용자 로그인 유형
}

participant Group extends User{
  o String groupName	// 사용자 그룹 명
}

asset GroupPay identified by groupName{
  o String groupName		// 사용자 그룹 명
  o Double pay			// 그룹 회비 금액
  o Double participantNum	// 회비 납부 인원 수
  o Double nowPay		// 현제까지 납부 된 회비
}

// 회비 납부 트랜잭션 속성 선언
@returns(String)
transaction SendMoney{
  --> Group accoutant
  --> Group normal
  --> GroupPay groupPay
}

// 사용자 유형 변경 트랜잭션 속성 선언
@returns(String)
transaction ChangeAccount{
  --> Group Master
  --> Group Accoutant
  --> Group Normal
}

 

수정 사항

1. 사용자 가입 유형을 선언

  • 최근 트랜드에 맞추어 사용자 제공 홈페이지에 Oauth를 이용한 로그인 적용
  • 현제 Kakao, Naver는 성공
  • Google Oauth의 경우 현제 구현 중

2. 사용자 유형 변경 트랜잭션 선언

  • 회계가 바뀌었을 경우 관리자에게 회원 유형 변경 요청
  • 관리자는 사용자를 회계/일반 사용자로 변경 가능하도록 구현

 

ISSUE

1. 사용자 식별 Id가 모든 Oauth에 존재 여부와 회원가입 시 생성되는 값을 만들 수 있는지 알 수 없음

  • Kakao Oauth의 경우는 ID가 존재 함 (10자리의 숫자)
  • 일반 회원가입 사용자의 경우 ID는 본인의 ID가 됨
  • 일반 회원가입 사용자는 로그인 시 본인이 작성한 ID를 입력하여 로그인
  • Oauth 로그인의 경우 Email혹은 전화번호로 로그인