인증

아래 단계별 튜토리얼을 따라 기본 SDK 기능을 둘러보십시오.

사용자 이름/이메일 및 암호를 통한 사용자 로그인

SDK 메소드를 사용하여 구현하는 방법 지침:

  • 사용자 등록
  • 등록 확인 이메일 요청 재전송
  • 사용자 로그인
  • 사용자 암호

사용자 이름 또는 이메일 주소로 사용자를 인증할 수 있습니다. 다음 예시에서 사용자를 사용자 이름 이름으로 인증합니다. 반면 이메일 주소는 등록 확인 및 암호 재설정에 사용합니다.

Note
로그인 위젯을 귀하의 사이트에서 사용하는 경우(예: 웹 스토어) 같은 사용자 인증 방법을 귀하의 사이트 및 애플리케이션에서 구현했는지 확인하십시오. 위젯은 기본적으로 이메일 주소를 인증에 사용합니다. 사용자 로그인을 사용자 이름을 통해 설정하려면 계정 관리자에게 연락하십시오.

예시의 로직 및 인터페이스는 귀하의 애플리케이션의 것보다 덜 복잡합니다. 가능한 인증 시스템 구현 옵션은 데모 프로젝트에 서술되어 있습니다.

사용자 등록 구현

페이지 컨트롤러 생성

등록 페이지용 장면을 생성하고 페이지에 추가할 요소:

  • 사용자 이름 필드
  • 사용자 이메일 주소 필드
  • 사용자 암호 필드
  • 등록 버튼

다음 그림은 페이지 구조의 예시를 보여줍니다.

페이지 컨트롤러 생성

  1. MonoBehaviour 기본 클래스에서 상속된 RegistrationPage 스크립트를 생성합니다.
  2. 페이지 인터페이스 요소에 대한 변수를 선언하고Inspector 패널에서 그에 대한 값을 설정합니다.
  3. 등록 버튼 클릭 프로세스 논리 추가:

    1. Start 메소드에서 이벤트 클릭을 구독합니다.
    2. 버튼 클릭 후에 호출된 익명 메소드를 추가합니다.
    3. 이 메소드에서 username, email, password 변수를 선언하고 이를 페이지 필드의 값으로 초기화합니다.
    4. XsollaLogin.Instance.Registration SDK 메소드를 호출하고 username, email, password 변수를 다음 메소드와 이에 전달합니다.

      • OnSuccess — 등록이 성공적이면 호출됩니다
      • OnError — 오류가 발생하면 호출됩니다

Note

스크립트 예시에서 OnSuccessOnError 메소드는 표준 Debug.Log 메소드를 호출합니다. 오류 코드 및 설명은 error 매개 변수에서 전달됩니다.

등록이 성공적이라면 등록 이메일 또는 로그인 페이지 열기 요청 재전송을 포함하는 페이지 열기 같은 다른 동작을 추가할 수 있습니다.

등록 페이지 스크립트 예시:

Copy
Full screen
Small screen
using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{

  public class RegistrationPage : MonoBehaviour
  {
    // Declaration of variables for UI elements on the page

    [SerializeField] private InputField UsernameInput;

    [SerializeField] private InputField EmailInputField;

    [SerializeField] private InputField PasswordInputField;

    [SerializeField] private Button RegisterButton;

    private void Start()
    {
      // Handling the button click
      RegisterButton.onClick.AddListener(() =>
      {
        var username = UsernameInput.text;
        var email = EmailInputField.text;
        var password = PasswordInputField.text;

        XsollaLogin.Instance.Registration(username, email, password, OnSuccess, OnError);
      });
    }

    private void OnSuccess()
    {
      UnityEngine.Debug.Log("Registration successful");
      // Some actions
    }

    private void OnError(Error error)
    {
      UnityEngine.Debug.Log($"Registration failed. Description: {error.errorMessage}");
      // Some actions
    }
  }
}

등록 확인 이메일 설정

성공적인 등록 후 사용자는 지정된 주소로 등록 확인 이메일을 받습니다. 게시자 계정에서 사용자에게 보낼 이메일을 맞춤 설정할 수 있습니다.

Android 애플리케이션을 개발 중이라면 사용자가 등록 확인을 한 후에 애플리케이션으로 사용자들 돌려보내기 위한 딥 링크를 설정합니다.

Note
보안 표준이 이를 허용한다면 이메일 주소를 통한 등록 확인을 비활성화할 수 있습니다. 계정 관리자에게 연락하여 비활성화하거나 am@xsolla.com으로 연락해 주십시오.

등록 확인 이메일 재전송 요청 구현

페이지 컨트롤러 생성

확인 이메일 재전송 요청 페이지용 장면을 생성하고 페이지에 추가할 요소:

  • 사용자 이름/이메일 필드
  • 재전송 버튼

다음 그림은 페이지 구조의 예시를 보여줍니다.

페이지 컨트롤러 생성

  1. MonoBehaviour 기본 클래스에서 상속된ResendConfirmationEmail 스크립트를 생성합니다.
  2. 페이지 인터페이스 요소에 대한 변수를 선언하고Inspector 패널에서 그에 대한 값을 설정합니다.
  3. 이메일 재전송 버튼 클릭 프로세스 논리 추가:

    1. Start 메소드에서 이벤트 클릭을 구독합니다.
    2. 버튼 클릭 후에 호출된 익명 메소드를 추가합니다.
    3. 이 메소드에서 username 변수를 선언하고 이를 페이지 필드의 값으로 초기화합니다.
    4. XsollaLogin.Instance.ResendEmail SDK 메소드를 호출하고 username 변수와 OnSuccess, OnError 메소드를 이에 전달합니다.

이메일 재전송 페이지 스크립트 예:

Copy
Full screen
Small screen
using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
  public class ResendConfirmationEmail : MonoBehaviour
  {
    // Declaration of variables for UI elements on the page

    [SerializeField] private InputField UsernameInput;

    [SerializeField] private Button ResendEmailButton;

    private void Start()
    {
      // Handling the button click
      ResendEmailButton.onClick.AddListener(() =>
      {
        var username = UsernameInput.text;

        XsollaLogin.Instance.ResendEmail(username, OnSuccess, OnError);
      });
    }

    private void OnSuccess()
    {
      UnityEngine.Debug.Log("Resend confirmation email successful");
      // Some actions
    }

    private void OnError(Error error)
    {
      UnityEngine.Debug.Log($"Resend confirmation email failed. Description: {error.errorMessage}");
      // Some actions
    }
  }
}

요청이 성공적이면 사용자가 등록 확인 이메일을 등록할 동안 지정한 이메일 주소로 받습니다.

사용자 로그인 구현

페이지 컨트롤러 생성

로그인 페이지용 장면을 생성하고 추가할 요소:

  • 사용자 이름 필드
  • 암호 필드
  • 기억 체크 박스
  • 로그인 버튼

다음 그림은 페이지 구조의 예시를 보여줍니다.

페이지 컨트롤러 생성

  1. MonoBehaviour 기본 클래스에서 상속된AutorizationPage 스크립트를 생성합니다.
  2. 페이지 인터페이스 요소에 대한 변수를 선언하고 Inspector 패널에서 그에 대한 값을 설정합니다.
  3. 로그인 버튼 클릭 프로세스 논리 추가:

    1. Start 메소드에서 이벤트 클릭을 구독합니다.
    2. 버튼 클릭 후에 호출된 익명 메소드를 추가합니다.
    3. 이 메소드에서 usernamepassword 변수를 선언하고 이를 페이지 필드의 값으로 초기화합니다. rememberMe 변수를 생성하고 이를 확인란 상태로 초기화하여 계정을 기억하게 합니다.
    4. XsollaLogin.Instance.SignIn SDK 메소드를 소환하여 username, password, rememberMe 변수와 OnSuccess, OnError 메소드를 이에 전달합니다.

Note
성공적인 사용자 로그인 후 권한 부여 토큰이 token 매개 변수에서 전달됩니다. 권한 부여 토큰은 요청에서 엑솔라 서버에 사용됩니다.

로그인 페이지 스크립트 예시:

Copy
Full screen
Small screen
using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
  public class AuthorizationPage : MonoBehaviour
  {
    // Declaration of variables for UI elements on the page

    [SerializeField] private InputField UsernameInput;

    [SerializeField] private InputField PasswordInputField;

    [SerializeField] private Toggle RememberMeToggle;

    [SerializeField] private Button AuthorizationButton;

    private void Start()
    {
      // Handling the button click

      AuthorizationButton.onClick.AddListener(() =>
      {
        var username = UsernameInput.text;
        var password = PasswordInputField.text;
        var rememberMe = RememberMeToggle.isOn;

        XsollaLogin.Instance.SignIn(username, password, rememberMe, OnSuccess, OnError);
      });
    }

    private void OnSuccess(string token)
    {
      UnityEngine.Debug.Log($"Authorization successful. Token: {token}");
      // Some actions
    }

    private void OnError(Error error)
    {
      UnityEngine.Debug.Log($"Authorization failed. Description: {error.errorMessage}");
      // Some actions
    }
  }
}

암호 재설정 구현

페이지 컨트롤러 생성

암호 재설정 페이지용 장면을 생성하고 페이지에 추가할 요소:

  • 사용자 이름/이메일 필드
  • 암호 재설정 버튼

다음 그림은 페이지 구조의 예시를 보여줍니다.

페이지 컨트롤러 생성

  1. MonoBehaviour 기본 클래스에서 상속된ResetPasswordPage 스크립트를 생성합니다.
  2. 페이지 인터페이스 요소에 대한 변수를 선언하고 Inspector 패널에서 그에 대한 값을 설정합니다.
  3. 암호 재설정 버튼 클릭 프로세스 논리 추가:

    1. Start 메소드에서 이벤트 클릭을 구독합니다.
    2. 버튼 클릭 후에 호출된 익명 메소드를 추가합니다.
    3. 이 메소드에서 username 변수를 선언하고 이를 페이지 필드의 값으로 초기화합니다.
    4. XsollaLogin.Instance.ResetPassword SDK 메소드를 호출하고 username 변수와 OnSuccess, OnError 메소드를 이에 전달합니다.

암호 재설정 페이지 스크립트 예시:

Copy
Full screen
Small screen
using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
    public class ResetPasswordPage : MonoBehaviour
    {
        // Declaration of variables for UI elements on the page

        [SerializeField] private InputField UsernameInput;

        [SerializeField] private Button ResetPasswordButton;

        private void Start()
        {
            // Handling the button click

            ResetPasswordButton.onClick.AddListener(() =>
            {
                var username = UsernameInput.text;

                XsollaLogin.Instance.ResetPassword(username, OnSuccess, OnError);
            });
        }

        private void OnSuccess()
        {
            UnityEngine.Debug.Log("Password reset successful");
            // Some actions
        }

        private void OnError(Error error)
        {
            UnityEngine.Debug.Log($"Password reset failed. Description: {error.errorMessage}");
            // Some actions
        }
    }
}

성공적인 암호 재설정 요청 후 사용자는 암호 재설정 링크가 있는 이메일을 받게 됩니다. 게시자 계정 > 로그인 프로젝트 > 일반 설정 > URL > 콜백 URL에서 리디렉션 주소를 구성할 수 있습니다.

이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
숨기기

소셜 로그인

본 지침은 SDK 메소드를 통하여 사용자의 SNS 계정으로 사용자 등록 및 로그인을 구현하는 방법을 보여줍니다.

사용자 이름/사용자 이메일 주소 및 비밀번호를 통한 사용자 인증과는 달리, 사용자 등록을 위한 별도의 로직을 구현할 필요가 없습니다. 사용자가 SNS를 통해 최초 로그인 하는 경우, 새 계정이 자동으로 생성됩니다.

여러분의 애플리케이션에서 대체 인증 메소드를 자체 구현한 경우, 다음 조건이 일치하면 해당 SNS 계정이 기존 사용자 계정에 자동으로 연결 됩니다:

  • 사용자 이름/이메일 주소 및 비밀번호로 가입한 사용자가 SNS 계정을 통해 애플리케이션에 로그인했습니다.
  • SNS는 이메일 주소를 반환합니다.
  • SNS의 사용자 이메일 주소가 애플리케이션에서 가입 시 사용한 이메일 주소와 동일합니다.

Note
SNS 계정 수동 연결을 구현할 수 있습니다. 사용자가 SNS 계정을 자신의 계정에 연결할 수 있도록 하는 페이지를 애플리케이션에 추가합니다. 페이지 컨트롤러에서, LinkSocialProvider SDK 메소드를 사용합니다.

Facebook 계정을 통해 사용자 로그인을 설정하는 방법을 보여주는 예시입니다. 모든 소셜 네트워크를 같은 압법으로 설정할 수 있습니다.

예시의 로직 및 인터페이스는 귀하의 애플리케이션의 것보다 덜 복잡합니다. 가능한 인증 시스템 구현 옵션은 데모 프로젝트에 서술되어 있습니다.

페이지 컨트롤러 생성

로그인 페이지용 장면을 생성하고 소셜 로그인 버튼을 이에 추가합니다. 다음 사진은 페이지 구조의 예시를 보여줍니다.

페이지 컨트롤러 생성

  1. MonoBehaviour 기본 클래스에서 상속된 SocialAuthorizationPage 스크립트를 생성합니다.
  2. 애플리케이션 로그인 페이지 인터페이스 요소에 대한 변수를 선언하고 Inspector 패널에서 그에 대한 값을 설정합니다.
  3. 로그인 버튼 클릭 프로세스 논리 추가:

    1. Start 메소드에서 클릭 이벤트에 연동시킵니다.
    2. 버튼 클릭 시 호출되는 익명 메소드를 추가합니다.
    3. 로그인 페이지 URL을 전달하려면 익명 메소드에서 url 변수를 선언합니다. GetSocialNetworkAuthUrl SDK 메소드에서 Facebook 값을 SocialProvider 매개변수에 전달하여 이 변수를 초기화합니다.
    4. 브라우저를 열기 위하여, BrowserHelper.Instance.Open 메소드를 호출합니다. 내장 브라우저를 사용하려면, url 변수 및 true 값을 메소드에 전달합니다.

Note
외부 브라우저에서는 소셜 로그인을 사용할 수 없습니다. SDK는 엑솔라가 개발한 기본 브라우저를 포함합니다. 엑솔라 기본 브라우저 또는 다른 기본 브라우저 솔루션을 사용할 수 있습니다.

    1. 토큰을 얻고 브라우저를 닫으려면 성공적인 사용자 등록 후에 페이지 URL 변경을 추적합니다.
      1. singlePageBrowser 변수를 선언하고 BrowserHelper.Instance.GetLastBrowser SDK 메소드를 통해 이를 초기화합니다.
      2. 활성화 페이지 URL 변경 이벤트에 구독하고 OnUrlChanged 메소드를 처리기로 설정합니다.

  1. 토큰 수신 구현:
    1. ParseUtils.TryGetValueFromUrl 유틸리티 메소드를 사용하여 OnUrlChanged 메소드에 전달된 활성 페이지 URL을 파싱합니다.
    2. 활성 페이지 URL에 인증 코드 확인을 추가합니다. ParseUtils.TryGetValueFromUrl 메소드는 인증 코드를 code 변수로 전달합니다.
    3. 토큰 인증 코드를 교환하려면, ExchangeCodeToToken SDK 메소드를 호출하고 code 변수 및 다음 메소드를 전달합니다:
      • OnSuccess — 등록 성공 시 호출
      • OnError — 에러 발생 시 호출

Note

스크립트 예시에서 OnSuccessOnError 메소드가 표준 Debug.Log 메소드를 호출합니다. 다른 동작을 추가할 수 있습니다.

사용자가 성공적으로 로그인하면 권한 부여 토큰이 token 매개 변수에서 전달됩니다. 이 토큰은 요청에서 엑솔라 서버로 사용됩니다. 오류가 발생하면 토큰의 코드 및 설명이 error 매개 변수에서 전달됩니다.

    1. 토큰을 얻은 후 브라우저에서 게임 개체를 삭제합니다.

로그인 페이지 스크립트 예시:

Copy
Full screen
Small screen
using UnityEngine;
using UnityEngine.UI;
using Xsolla.Core;
using Xsolla.Login;

namespace Recipes
{
    public class SocialAuthorizationPage : MonoBehaviour
    {

        // Declaration of variables for UI elements on the page

        [SerializeField] private Button FacebookButton;

        private void Start()
        {

            // Handling the button click

            FacebookButton.onClick.AddListener(() =>
            {

                // Opening browser

                var url = XsollaLogin.Instance.GetSocialNetworkAuthUrl(SocialProvider.Facebook);
                BrowserHelper.Instance.Open(url, true);

                // Determining the end of authentication

                var singlePageBrowser = BrowserHelper.Instance.GetLastBrowser();
                singlePageBrowser.GetComponent<XsollaBrowser>().Navigate.UrlChangedEvent += OnUrlChanged;
            });
        }


        // Getting token

        private void OnUrlChanged(IXsollaBrowser browser, string url)
        {
            if (ParseUtils.TryGetValueFromUrl(url, ParseParameter.code, out var code))
            {
                XsollaLogin.Instance.ExchangeCodeToToken(code, OnSuccess, OnError);
                Destroy(BrowserHelper.Instance.gameObject);
            }
        }

        private void OnSuccess(string token)
        {
            UnityEngine.Debug.Log($"Authorization successful. Token: {token}");
            // Some actions
     }

        private void OnError(Error error)
        {
            UnityEngine.Debug.Log($"Authorization failed. Description: {error.errorMessage}");
            // Some actions
     }
    }
}

이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
숨기기
이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
이 페이지 평가
이 페이지 평가
개선해야 할 점이 있을까요?

답하기 원하지 않습니다

의견을 보내 주셔서 감사드립니다!
마지막 업데이트: 2021년 6월 17일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누릅니다.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!