게임 분석, 리뷰, 소개, 개발 전문 블로그

 


오늘 공부할 내용

 

회원가입과 로그인에 대해서 다룹니다.

뒤끝서버 홈페이지 - 게임유저관리/회원가입&로그인 을 참고했습니다.

 

Ps) 보기 쉽게 하려고 각 함수에 에러코드 내용을 넣어놨습니다. 중첩된 코드가 많으니 실제로 진행하실 때는 정리해서 만드세요.

 


동기 방식 - 회원 가입

동기 방식이라는 것은 코드 차례대로 진행되는 겁니다. (윗줄이 완료되면 아래줄 진행)

테스트할 때 디버그 로그가 어떤 식으로 출력되는지 확인해보면 알 수 있습니다.

 

BackEndAuthentication.cs 생성 및 작성

 

BackEndAuthentication.cs 를 만들고 아래 코드를 작성합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using UnityEngine;
using BackEnd;
 
public class BackEndAuthentication : MonoBehaviour
{
    public InputField idInput;
    public InputField paInput;
    
    // 회원가입1 - 동기 방식
    public void OnClickSignUp()
    {
        // 회원 가입을 한뒤 결과를 BackEndReturnObject 타입으로 반환한다.
        string error = Backend.BMember.CustomSignUp(idInput.text, paInput.text, "Test1").GetErrorCode();
 
        // 회원 가입 실패 처리
        switch(error)
        {
            case "DuplicatedParameterException":
                Debug.Log("중복된 customId 가 존재하는 경우");
                break;
 
            default:
                Debug.Log("회원 가입 완료");
                break;
        }
 
        Debug.Log("동기 방식============================================= ");
 
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

 

※ 코드 설명

Backend.BMember.CustomSignUp(idInput.text, paInput.text, "Test1") 로 동기 방식 가입을 진행합니다.

요청 결과를 BackEndReturnObject오브젝트로 반환됩니다. 

BackEndReturnObject는 뒤끝서버 쪽에서 만들어준 타입이라고 생각하시면 됩니다. 

마지막으로 .GetErrorCode() 를 통해 반환 결과가 에러가 있는지 없는지를 체크합니다.


동기 방식 - 로그인

 

BackEndAuthentication.cs 수정

 

BackEndAuthentication.cs 에 OnClickLogin1()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public void OnClickLogin1()
    {
        string error = Backend.BMember.CustomLogin(idInput.text, paInput.text).GetErrorCode();
 
        // 로그인 실패 처리
        switch (error)
        {
            // 아이디 또는 비밀번호가 틀렸을 경우
            case "BadUnauthorizedException":
                Debug.Log("아이디 또는 비밀번호가 틀렸다.");
                break;
 
 
            case "BadPlayer":  //  이 경우 콘솔에서 입력한 차단된 사유가 에러코드가 된다.
                Debug.Log("차단된 유저");
                break;
 
            default:
                Debug.Log("로그인 완료");
                break;
        }
Debug.Log("동기 방식============================================= ");
    }
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

 

※ 코드 설명

Backend.BMember.CustomLogin(계정아이디, 비밀번호) 를 통해 동기 방식 로그인을 진행합니다.

로그인 결과가 BackEndReturnObject 오브젝트로 반환됩니다.

BackEndReturnObject.GetErrorCode() 를 통해 에러가 있는지 체크합니다.

 


비동기 방식은 .NET 4.x 에서 문제가 발생하여 추후에 정리하겠습니다.

 

비동기 방식이라는 것은 순차적으로 코드가 호출되나 앞의 코드 내용이 완료되기 전에 뒤의 코드가 실행되는 것을 말합니다.

 

 


자동 로그인

 

로그인이 성공되면 AccessToken이라는 것을 유니티의 PlayerPrefs을 이용해서 기기에 저장합니다. 

저장된 AccessToken을 통해 자동로그인 기능을 만들 수 있습니다.

 

※코드 설명

비동기화는 isSuccess 가 true 가 되면 Update() 을 통해 Backend.BMember.SaveToken(bro); 이 호출됩니다.

Backend.BMember.LoginWithTheBackendToken() 이 녀석이 AccessToken으로 로그인 처리할 때 사용하는 코드입니다.

 


UI 만들기

 

InputField 2개 만드시고 Button 2개 만드세요.

만든  UI 4개를 아래와 같이 설정합니다.

 


컴포넌트 연결

 

저번 강좌에서 먄든 BackEndInitialize 오브젝트의 이름을 BackEndGameObject 로 변경합니다.

BackEndGameObject 에 BackEndAuthentication.cs 를 추가하고 변수에 InputField 를 알맞게 연결합니다.

 

두개의 버튼에 클릭이벤트를 알맞게 연결합니다.

 

* 버튼의 클릭이벤트는 테스트를 하시면서 한번은 동기방식으로 한번은 비동기 방식으로 번갈아가면서 해보세요.

 


테스트하기

 


동영상 강좌

유튜브: https://youtu.be/XHdHY0q7T6A

네이버:  https://tv.naver.com/v/8746124