사용자 인증이란?
사용자 인증은 애플리케이션이나 게임에서 사용자의 신원을 확인하고, 특정 기능이나 서비스를 이용할 수 있도록 하는 과정입니다. Unity UGS에서는 사용자가 안전하게 로그인하고, 세션을 관리할 수 있도록 돕는 다양한 인증 방식을 제공합니다. 익명 로그인, 이메일 및 비밀번호 인증 등이 포함됩니다.
Unity 서비스 활성화하기
- Unity Dashboard에 로그인한 후, 원하는 프로젝트를 선택합니다.
- Services 메뉴에서 Player Authentication을 활성화합니다.
패키지 설치하기
- Window 메뉴에서 Package Manager를 선택합니다.
- Add package from git URL을 클릭한 후, com.unity.services.authentication을 입력하여 설치합니다.
혹은 Authentication을 검색하여 설치합니다.
익명 로그인 방법
1. 익명 로그인 코드 작성하기
using Unity.Services.Authentication;
using Unity.Services.Core;
using System.Threading.Tasks;
using UnityEngine;
public class AuthenticationManager : MonoBehaviour
{
async void Start()
{
// Unity Game Services 초기화
await UnityServices.InitializeAsync();
Debug.Log("Unity Services Initialized");
// 익명 로그인 시도
await SignInAnonymouslyAsync();
}
async Task SignInAnonymouslyAsync()
{
try
{
// 익명 로그인 시도
await AuthenticationService.Instance.SignInAnonymouslyAsync();
Debug.Log("익명 로그인 성공!");
// PlayerID 가져오는 방법
Debug.Log($"PlayerID: {AuthenticationService.Instance.PlayerId}");
}
catch (AuthenticationException ex)
{
// AuthenticationErrorCodes와 에러 코드 비교
// 적절한 오류 메시지를 플레이어에게 알림
Debug.LogException(ex);
}
catch (RequestFailedException ex)
{
// CommonErrorCodes와 에러 코드 비교
// 적절한 오류 메시지를 플레이어에게 알림
Debug.LogException(ex);
}
}
}
2. 익명 인증 테스트하기
위의 코드를 작성한 후, Unity 에디터에서 프로젝트를 실행하여 인증 과정이 정상적으로 작동하는지 확인합니다. Unity Console에 아래 사진처럼 글이 나오면 로그인한 ID와 메시지가 나타나면 인증이 성공적으로 완료된 것입니다.
사용자 이름 및 비밀번호 로그인 방법
1. 사용자 이름 및 비밀번호 로그인 방법 활성화
ID 제공자 탭에서는 다양한 로그인 방법을 추가할 수 있는 기능이 있습니다. 현재는 Username & Password 방식을 이용하여 플레이어가 쉽게 회원가입을 할 수 있도록 설정하겠습니다. 다른 로그인 방식들은 절차가 복잡하므로 다루지 않겠습니다.
2. 사용자 이름 및 비밀번호 로그인 코드 작성하기
using UnityEngine;
using UnityEngine.UI; // UI 요소를 사용하기 위해 필요
using Unity.Services.Authentication;
using Unity.Services.Core;
using System.Threading.Tasks;
public class UsernamePasswordAuth : MonoBehaviour
{
public InputField usernameInput; // 사용자 이름 입력 필드
public InputField passwordInput; // 비밀번호 입력 필드
public Button loginButton; // 로그인 버튼
public Button signUpButton; // 회원가입 버튼
async void Start()
{
await UnityServices.InitializeAsync();
Debug.Log("Unity Services Initialized");
loginButton.onClick.AddListener(async () => await SignInWithUsernameAndPasswordAsync(usernameInput.text, passwordInput.text));
signUpButton.onClick.AddListener(async () => await SignUpWithUsernameAndPasswordAsync(usernameInput.text, passwordInput.text));
}
// 사용자 이름과 비밀번호를 사용한 로그인 메서드
async Task SignInWithUsernameAndPasswordAsync(string username, string password)
{
try
{
await AuthenticationService.Instance.SignUpWithUsernamePasswordAsync(username, password);
Debug.Log("로그인 성공!");
Debug.Log($"PlayerID: {AuthenticationService.Instance.PlayerId}");
}
catch (AuthenticationException ex)
{
Debug.LogError("인증 실패: " + ex.Message);
}
catch (RequestFailedException ex)
{
Debug.LogError("요청 실패: " + ex.Message);
}
}
// 사용자 이름과 비밀번호로 회원가입 메서드
async Task SignUpWithUsernameAndPasswordAsync(string username, string password)
{
try
{
await AuthenticationService.Instance.SignUpWithUsernamePasswordAsync(username, password);
Debug.Log("회원가입 성공!");
Debug.Log($"PlayerID: {AuthenticationService.Instance.PlayerId}");
}
catch (AuthenticationException ex)
{
Debug.LogError("회원가입 실패: " + ex.Message);
}
catch (RequestFailedException ex)
{
Debug.LogError("요청 실패: " + ex.Message);
}
}
}
3. 사용자 이름 및 비밀번호 로그인 테스트하기
위의 코드를 작성한 후, Unity 에디터에서 프로젝트를 실행하여 인증 과정이 정상적으로 작동하는지 확인합니다.
씬 구성은 아래 사진처럼 만들었습니다.
주의 : 비밀번호는 다음과 같은 요구 사항을 충족해야 합니다:
- 최소 8자 이상
- 대문자 1개
- 소문자 1개
- 숫자 1개
- 기호(특수 문자) 1개
이제 아이디와 비밀번호를 입력한 후 회원가입 버튼을 누르면, 아래 사진과 같이 회원가입이 성공하며 자동으로 로그인까지 진행됩니다.
로그인이 완료되었으므로 프로젝트를 다시 실행한 후 동일한 아이디로 로그인 시도를 하면, 아래 사진처럼 로그인이 성공
하며 PlayerID가 동일함을 확인할 수 있습니다.
플레이어 관리
회원가입된 사용자들을 확인하려면 또 다른 서비스인 Player Management를 확인하면 됩니다.
마무리
Unity의 사용자 인증 서비스 중 익명 로그인과 Username & Password 방식을 이용한 회원가입 및 로그인 과정을 알아봤습니다. 프로젝트에서 사용자 인증을 손쉽게 구현할 수 있으며, 이를 기반으로 UGS의 다양한 기능을 적용시킬 수 있습니다.
'Unity > Unity Cloud(UGS)' 카테고리의 다른 글
[Unity] UGS - Asset Manager (1) | 2024.10.26 |
---|---|
[Unity] UGS - Cloud Code (0) | 2024.10.25 |
[Unity] UGS - Cloud Save (0) | 2024.10.24 |
[Unity] UGS - Remote Config (0) | 2024.10.23 |
[Unity] 유니티 클라우드 - 충돌 보고서(Cloud Diagnostics) (0) | 2024.05.09 |