Main Subject
WebAPI ServerASP.NET CoreMain Subject
  • 과제 개요
  • 추가 학습
    • 샤딩 Sharding
    • Scale out / Scale up
    • 로드밸런싱
    • WSL
  • 구현
    • 계정생성
    • 로그인
    • 권한 확인(미들웨어)
    • 공지 등록 및 전송
    • 우편함
    • 출석부
    • 인앱 결제 아이템 지급
    • 강화
    • 던전 스테이지
  • DB 설계
    • MySQL
    • Redis
  • Coding Conventions
  • [회고]
    • 마음가짐
    • 1주차
    • 2주차
    • 3주차
    • 4주차
    • [5주차]
    • 마치며
Powered by GitBook
On this page
  • 기능
  • 로직
  • 사용 DB
  • Mysql
  • Redis
  • API
  1. 구현

로그인

기능

  • 앱 버전, 마스터데이터 버전 확인

  • 자신의 게임 데이터 로딩 (기본 게임 데이터, 기본 아이템 데이터)

  • 인증키 발급, redis에 저장

로직

  1. 클라이언트에게 ID, PW를 입력받음

  2. 앱 버전, 마스터데이터 버전 확인

  3. 로그인 데이터 인증 (AccountDB.Account)

    • 유효한 ID

    • PW 해싱해서 DB에 있는 값과 비교

  4. 게임데이터 불러오기

  5. 인증 키 생성

  6. 인증키, 플레이어 상태 Redis에 등록

  7. 인증키, 기본 게임 데이터(GameDB.Player), 아이템 데이터(GameDB.Item) 클라이언트에게 반환

사용 DB

Mysql

  • AccountDB.Account (계정 생성)

  • GameDB.Player (캐릭터 조회)

  • GameDB.Equipment (장착 아이템 조회), GameDB.Inventory(장착하고 있는 아이템 정보 조회), 마스터데이터(item.Name, item.Attribute, item.UseLv, item.MaxStack, itemAttribute.Name)

Redis

  • Data Type : String

  • Key : "P" +playerId + "Info"

  • Value : { string AuthToken, int Id, string Status, int CurrentStage }

API

POST /Login

  • request

    {
        "Email": "string",
        "Password": "string",
        "AppVersion" : "string",
        "MasterDataVersion" : "string"
    }
  • response

    {
        "Result" : "ErrorCode",
        "PlayerId" : "int",
        "AuthToken" : "string",
        "Item" : [
            {
                "PlayerId" : "int",
                "ItemId" : "int",
                "ItemCode" : "int",
                "ItemCount" : "int",
                "Attack" : "int",
                "Defence" : "int",
                "Magic" : "int",
                "EnhanceLevel" : "byte",
                "EnhanceTryCount" : "byte",
                "IsDestructed" : "bool",
                "IsDeleted" : "bool"
            }
        ],
        "Player" : {
            "AccountId" : "int",
            "PlayerId" : "int",
            "Exp" : "int",
            "Level" : "int",
            "Hp" : "int",
            "Mp" : "int",
            "Attack" : "int",
            "Defence" : "int",
            "Magic" : "int",
            "Money" : "int"
        }
    }
Previous계정생성Next권한 확인(미들웨어)

Last updated 2 years ago