이전 강의에선, API 공식문서를 읽는 방법에 대해 알아보았고, 실제로 문서를 보고 API를 적용하여 계정생성을 하는 법
까지 알아보았다.
이어서 로그인 및 계정 생성을 완성해보고자 한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class LoginWindowView : MonoBehaviour
{
public InputField Username;
public InputField Password;
public InputField ConfirmPassword;
public Button PlayAsGuestButton;
public Button RegisterButton;
private void Start()
{
RegisterButton.onClick.AddListener(OnClickRegisterOrLogin);
}
private void OnClickRegisterOrLogin()
{
PlayFabAuthService.Instance.RegisterOrLoginPlayFab(Username.text, Password.text);
}
}
LoginWindowView 부분에선 단순히 InputField를 받아주고 있고, RegisterButton을 하나 바인딩해서 받아주고. 클릭
리스너에 버튼 클릭 시, 입력 받은 데이터를 계정관리 매니저에 넘겨주고 있다.
자 이제 RegisterOrLoginPlayFab 메소드를 만들어주기 전, 우리가 알아야하는 건 로그인 기능이다 관련 문서를
공식 문서에서 찾아보자!
이제, 문서만 봐도 뭐가 필요하고 뭘 넣어줘야 할지 감이 잡힐거다. 코드로 보자
public void RegisterOrLoginPlayFab(string email,string password)
{
PlayFabClientAPI.LoginWithEmailAddress(new LoginWithEmailAddressRequest() {
TitleId = PlayFabSettings.TitleId,
Email = email,
Password = password,
}, (result) => {
Debug.Log($"로그인 성공!{result.LastLoginTime}");
}, (error) =>
{
Debug.Log($"로그인 실패{error.ErrorMessage}, code : {error.Error}");
});
}
필자는 로그인 성공 시 간단히 마지막 로그인 시간을 표출 해줬고, 실패시엔 에러메세지와 에러코드를 출력해주기로 하였다.
그리고 일부러 에러를 발생시켰는데, User not found 즉 해당 계정이 없다는거다. 에러코드는 AccountNotFound라고 한다.
이 PlayFabErrorCode를 타고 들어가보면 Enum(열거형) 타입으로 만들어져있는 것을 알 수 있다.
이제 해당 계정이 없으면 자동으로 계정 생성까지 진행시켜주자.
public void RegisterOrLoginPlayFab(string email,string password)
{
PlayFabClientAPI.LoginWithEmailAddress(new LoginWithEmailAddressRequest() {
TitleId = PlayFabSettings.TitleId,
Email = email,
Password = password,
}, (result) => {
Debug.Log($"로그인 성공!{result.LastLoginTime}");
}, (error) =>
{
if(error.Error == PlayFabErrorCode.AccountNotFound)
{
RegisterPlayFabUser(email, password);
return;
}
Debug.Log($"로그인 실패{error.ErrorMessage}, code : {error.Error}");
});
}
private void RegisterPlayFabUser(string email, string password)
{
PlayFabClientAPI.RegisterPlayFabUser(new RegisterPlayFabUserRequest() {
TitleId = PlayFabSettings.TitleId,
Email = email,
Password = password,
RequireBothUsernameAndEmail = false
}, (result) =>
{
Debug.Log($"계정 생성완료!{result.SessionTicket}");
},
(error)=> {
Debug.Log(error.ErrorMessage);
});
}
코드를 보면 Account Not Found 에러가 나오면 이전시간에 배운 RegsiterPlayFabUser를 호출시켜주고 있다.
이제 Email, Password Input에 각각 입력값을 넣고 Login / Register 버튼을 눌러주면
정상적으로 계정 생성과 로그인 성공 메세지가 나옴을 볼 수 있다.
이제 여기서 비밀번호가 틀렸을 때 라던지, 각종 예외 상황에 대해선 스스로 해결해보도록 하자.
다음엔 소셜로그인 기능을 구현해보겠다.
'Unity > Unity&PlayFab' 카테고리의 다른 글
03. PlayFab 소셜 로그인 (페이스북) (0) | 2023.09.11 |
---|---|
02. PlayFab 로그인/계정 생성 시작 (0) | 2023.09.05 |
01. PlayFab SDK 설치 (0) | 2023.09.05 |
00. PlayFab 사용법과 강의 목적. (0) | 2023.09.05 |