# 블루프린트 연동

> Learn how to implement authentication using Unreal Engine Blueprints.

### 종속성으로 Authentication SDK 추가##add-the-authentication-sdk-as-a-dependency

다음 블루프린트 데모를 계속 진행하려면 먼저 Authentication SDK 플러그인을 성공적으로 설치했는지, 블루프린트의 이벤트 그래프 또는 **Unity Gaming Services** > **Authentication**의 함수에서 인증 관련 함수를 볼 수 있는지 확인해야 합니다.


**이 블루프린트를 위한 모든 작업:**
![이 블루프린트를 위한 모든 작업](/api/media?file=/authentication-unreal/media/images/unreal-auth-blueprint-actions.png)

#### Sign In Anonymously##sign-in-anonymously

`Sign In Anonymously ` 함수를 사용해 [익명으로 권한을 부여](/authentication/use-anon-sign-in.md)합니다. 이는 사용자 정보 없이 빠르게 인증할 수 있는 방법이며, 외부 공급자와의 상호 작용이 필요하지 않습니다. 성공하면 현재 플레이어 프로필이 Unity Authentication 서버에서 반환된 검색된 자격 증명 정보로 채워집니다.

`Sign In Anonymously`는 로그인 수행 방식을 변경하는 파라미터로 `FAuthenticationSignInOptions` 구조체를 사용합니다. 이러한 파라미터에 대한 자세한 내용은 공식 [Unity API 서비스 기술 자료 페이지](https://services.docs.unity.com/player-auth/v1/index.html)에서 확인할 수 있습니다.

SDK의 응답은 사용자 지정 이벤트에서 처리할 수 있으며, 이 이벤트는 [Authentication Response](./sdk-api/authentication/models/authentication-response.md)를 출력 핀으로 수신해야 합니다. 응답 변수를 분리하려면 응답 본문 출력 핀을 오른쪽 클릭하고 **Split Pin**을 선택합니다.


**Sign In Anonymously:**
![Sign In Anonymously](/api/media?file=/authentication-unreal/media/images/unreal-auth-sign-in-anonymously.png)

### Get User Info##get-user-info

`Get User Info` 함수를 사용해 현재 인증된 사용자에 대한 정보를 검색합니다. 여기에는 사용자 ID, 인증 타임스탬프, 세션에 연결된 모든 외부 ID 제공업체 정보 등이 포함됩니다.

SDK의 응답은 사용자 지정 이벤트에서 처리할 수 있으며, 이 이벤트는 [Authentication User Response](./sdk-api/authentication/models/authentication-user-response.md)를 출력 핀으로 수신해야 합니다. 응답 변수를 분리하려면 응답 본문 출력 핀을 오른쪽 클릭하고 **Split Pin**을 선택합니다.


**Get user info:**
![Get user info](/api/media?file=/authentication-unreal/media/images/unreal-auth-user-info.png)

### Delete User##delete-user

`Delete User` 함수를 사용해 현재 인증된 플레이어와 관련된 모든 정보를 삭제합니다. 이 함수는 또한 플레이어를 로그아웃하고 플레이어에 연결된 모든 플레이어 환경 설정과 프로필을 삭제합니다.

SDK의 응답은 사용자 지정 이벤트에서 처리할 수 있으며, 이 이벤트는 삭제 성공 여부를 나타내는 `Boolean`을 출력 핀으로 가져와야 합니다.


**Delete user:**
![Delete user](/api/media?file=/authentication-unreal/media/images/unreal-auth-delete-user.png)

### Register State Changed Callback##register-state-changed-callback

`Register State Changed Callback` 함수를 사용해 [보조 시스템의 상태](./authentication-lifecycle.md)가 변경될 때 호출되는 콜백 함수를 할당합니다. 예를 들어, 할당된 함수는 플레이어가 인증에 성공하고 보조 시스템 상태가 `Authorized`로 변경되면 실행됩니다.

SDK의 응답은 사용자 지정 이벤트에서 처리할 수 있으며, 이 이벤트는 [Authentication State Changed Response](./sdk-api/authentication/models/authentication-state-changed-response.md)를 출력 핀으로 수신해야 합니다. 응답 변수를 분리하려면 응답 본문 출력 핀을 오른쪽 클릭하고 **Split Pin**을 선택합니다.


**Register state changed callback:**
![Register state changed callback](/api/media?file=/authentication-unreal/media/images/unreal-auth-state-change-callback.png)

### Sign Out##sign-out

`Sign Out` 함수를 사용해 현재 인증된 플레이어 프로필에서 로그아웃합니다. 이렇게 하면 현재 플레이어 프로필이 제거되고 기본 프로필로 전환됩니다. 이 함수에는 이 플레이어와 관련된 모든 저장된 자격 증명 정보를 제거하는 선택적 파라미터도 있습니다.

> **Note:**
>
> **참고**: 기본 프로필을 사용하는 동안 `Sign Out`을 사용하면 프로필 정보가 지워지고 프로필은 그대로 유지됩니다.

이 함수는 작업의 성공 여부를 나타내는 `Boolean`을 반환합니다.


**alt\_text:**
![alt\_text](/api/media?file=/authentication-unreal/media/images/unreal-auth-sign-out.png)

### Switch Profile##switch-profile

`Switch Profile` 함수를 사용해 플레이어 프로필로 전환하거나 프로필을 만듭니다.

> **Note:**
>
> **참고**: `Switch Profile`은 로그아웃한 상태에서만 호출할 수 있습니다. 인증된 상태에서 프로필 전환을 호출하면 경고가 기록되고 아무 일도 일어나지 않습니다.


**Switch profile:**
![Switch profile](/api/media?file=/authentication-unreal/media/images/unreal-auth-switch-profile.png)

### Profile Exists##profile-exists

`Profile Exists` 함수를 사용해 현재 세션에 지정된 프로필이 있는지 확인합니다.

> **Note:**
>
> **참고**: `Profile Exists`는 현재 세션에서 다시 만들지 않은 이전 세션의 프로필을 감지할 수 없습니다.

이 함수는 주어진 프로필 이름이 현재 플레이어 프로필 목록에 존재하는지 여부를 나타내는 `Boolean`을 반환합니다.


**Profile Exists:**
![Profile Exists](/api/media?file=/authentication-unreal/media/images/unreal-auth-profile-exists.png)

### Get Current Profile Name##get-current-profile-name

`Get Current Profile Name` 함수를 사용해 현재 플레이어 프로필의 이름을 검색합니다.

이 함수는 Authentication 보조 시스템에서 사용 중인 현재 플레이어 프로필의 이름을 나타내는 `String`을 반환합니다.


**Get current profile name:**
![Get current profile name](/api/media?file=/authentication-unreal/media/images/unreal-auth-current-name.png)

### Get Profile Names##get-profile-names

`Get Current Profile Names` 함수를 사용해 현재 세션에서 사용 중인 모든 플레이어 프로필 이름 목록을 검색합니다.

이 함수는 Authentication 보조 시스템에서 사용 중인 모든 플레이어 프로필의 이름을 나타내는 `String Array`를 반환합니다.


**Get profile names:**
![Get profile names](/api/media?file=/authentication-unreal/media/images/unreal-auth-profile-names.png)

### Register Profile Changed Callback##register-profile-changed-callback

`Register Profile Changed Callback` 함수를 사용해 플레이어 프로필이 변경될 때 호출되는 콜백 함수를합니다. 예를 들어, 할당된 함수는 [프로필 전환](./blueprint-integration.md#switch-profile)이 성공적으로 실행되면 실행됩니다.

SDK의 응답은 사용자 지정 이벤트에서 처리할 수 있으며, 이 이벤트는 [Authentication Player Profile Changed Response](./sdk-api/authentication/models/authentication-player-profile-changed-response.md)를 출력 핀으로 수신해야 합니다. 응답 변수를 분리하려면 응답 본문 출력 핀을 오른쪽 클릭하고 **Split Pin**을 선택합니다.


**Register profile changed callback:**
![Register profile changed callback](/api/media?file=/authentication-unreal/media/images/unreal-auth-register-profile.png)

### Register Profile Deleted Callback##register-profile-deleted-callback

`Register Profile Changed Callback` 함수를 사용하여 현재 세션에서 플레이어 프로필이 제거될 때 호출되는 콜백 함수를 지정할 수 있습니다. 예를 들어, 할당된 함수는 [로그아웃](./blueprint-integration.md#sign-out)이 성공적으로 실행되면 실행됩니다.

SDK의 응답은 사용자 지정 이벤트에서 처리할 수 있으며, 이 이벤트는 [Authentication Player Profile Deleted Response](./sdk-api/authentication/models/authentication-player-profile-deleted-response.md)를 출력 핀으로 수신해야 합니다. 응답 변수를 분리하려면 응답 본문 출력 핀을 오른쪽 클릭하고 **Split Pin**을 선택합니다.


**Register profile deleted callback:**
![Register profile deleted callback](/api/media?file=/authentication-unreal/media/images/unreal-auth-profile-deleted-callback.png)

### Is Signed In##is-signed-in

`Is Signed In` 함수를 사용해 현재 플레이어 프로필이 로그인되어 있는지 확인합니다. '로그인' 상태는 권한이 부여된 상태 또는 만료된 상태로 정의됩니다.

이 함수는 현재 플레이어 프로필이 로그인되어 있는지 여부를 나타내는 `Boolean`을 반환합니다.


**Is signed in:**
![Is signed in](/api/media?file=/authentication-unreal/media/images/unreal-auth-signed-in.png)

### Is Anonymous##is-anonymous

`Is Anonymous` 함수를 사용해 현재 플레이어 프로필이 익명으로 로그인되어 있는지 확인합니다. `Sign In Anonymously`를 성공적으로 실행하고 나면 true가 반환됩니다.

이 함수는 현재 플레이어 프로필이 익명으로 로그인했는지 여부를 나타내는 `Boolean`을 반환합니다. 마지막 로그인이 익명인 경우 세션이 만료된 경우에도 true를 반환합니다.


**Is anonymous:**
![Is anonymous](/api/media?file=/authentication-unreal/media/images/unreal-auth-is-anonymous.png)

### Is Authorized##is-authorized

`Is Authorized` 함수를 사용해 현재 플레이어 프로필이 로그인되어 있고 현재 권한을 부여한 상태인지 확인합니다.

이 함수는 현재 플레이어 프로필이 로그인되어 있고 권한을 부여하는 데 성공했는지 여부를 나타내는 `Boolean`을 반환합니다. 만료 시간이 아직 지나지 않은 상태에서 로그인 함수를 실행하면 true를 반환해야 합니다.


**Is authorized:**
![Is authorized](/api/media?file=/authentication-unreal/media/images/unreal-auth-is-authorized.png)

### Is Expired##is-expired

`Is Expired` 함수를 사용해 현재 [플레이어 프로필](./player-profiles.md)의 세션이 만료되었는지 확인합니다.

이 함수는 현재 플레이어 프로필의 세션이 초기 [인증 응답](./sdk-api/authentication/models/authentication-response.md)에서 반환된 만료 시간을 지났는지를 나타내는 `Boolean`을 반환합니다.


**Is expired:**
![Is expired](/api/media?file=/authentication-unreal/media/images/unreal-auth-is-expired.png)

### Session Token Exists##session-token-exists

`Session Token Exists` 함수를 사용해 현재 플레이어 프로필에 대한 플레이어 환경 설정에 [세션 토큰](./sdk-api/authentication/models/authentication-response.md#sessiontoken)이 있는지 확인합니다.

이 함수는 세션 토큰의 존재 여부를 나타내는 `Boolean`을 반환합니다.


**Session tokene exists:**
![Session tokene exists](/api/media?file=/authentication-unreal/media/images/unreal-auth-token-exists.png)

### Get Unity Project Id##get-unity-project-id

`Get Unity Project Id` 함수를 사용해 현재 인증 세션과 연결된 Unity 프로젝트 ID를 검색합니다.

이 함수는 현재 사용 중이 프로젝트 ID를 나타내는 `Guid`을 반환합니다.


**Get Unity project ID:**
![Get Unity project ID](/api/media?file=/authentication-unreal/media/images/unreal-auth-get-unity-project.png)

### Get Unity Environment Name##get-unity-environment-name

`Get Unity Environment Name` 함수를 사용해 현재 인증 세션과 연결된 Unity 환경 이름의 이름을 검색합니다.

이 함수는 현재 사용 중이 프로젝트 ID를 나타내는 `String`을 반환합니다.


**Get Unity Environment Name:**
![Get Unity Environment Name](/api/media?file=/authentication-unreal/media/images/unreal-auth-get-env-name.png)

### Get Access Token##get-access-token

`Get Access Token` 함수를 사용해 현재 세션의 [액세스 토큰](./sdk-api/authentication/models/authentication-response.md)을 검색합니다. 토큰이 없으면 빈 문자열을 반환합니다.


**Get access token:**
![Get access token](/api/media?file=/authentication-unreal/media/images/unreal-auth-get-access-token.png)

### Get Session Token##get-session-token

`Get Session Token` 함수를 사용해 현재 세션의 [세션 토큰](./sdk-api/authentication/models/authentication-response.md)을 검색합니다. 토큰이 없으면 빈 문자열을 반환합니다.


**Get session token:**
![Get session token](/api/media?file=/authentication-unreal/media/images/unreal-auth-get-session-token.png)

### Get User Id##get-user-id

`Get User Id` 함수를 사용해 현재 세션의 [사용자 ID](./sdk-api/authentication/models/authentication-response.md#userid)를 검색합니다.

> **Note:**
>
> **참고**: [플레이어 프로필 이름](./blueprint-integration.md#get-current-profile-name)과는 다릅니다. 사용자 ID는 Unity Authentication 시스템에서 반환된 고유한 사용자 식별자입니다.

이 함수는 현재 플레이어 프로필의 사용자 ID를 나타내는 `String`을 반환합니다. 토큰이 없으면 빈 문자열을 반환합니다.


**Get user ID:**
![Get user ID](/api/media?file=/authentication-unreal/media/images/unreal-auth-get-user-id.png)

### Get State##get-state

`Get State` 함수를 사용해 인증 세션의 현재 [상태](./sdk-api/authentication/authentication-states.md)를 검색합니다.

이 함수는 보조 시스템의 상태를 나타내는 `Enum`을 나타냅니다.


**Get state:**
![Get state](/api/media?file=/authentication-unreal/media/images/unreal-auth-get-state.png)

### Set Unity Project Id##set-unity-project-id

`Set Unity Project Id` 함수를 사용해 현재 인증 세션의 [Unity 프로젝트 ID](./get-started.md#link-your-project)를 설정합니다. 함수는 `Guid`를 사용합니다.

> **Note:**
>
> **참고**: 이렇게 하면 프로젝트 설정에서 구성된 Unity 프로젝트 ID가 오버라이드됩니다.


**Set Unity project ID:**
![Set Unity project ID](/api/media?file=/authentication-unreal/media/images/unreal-auth-unity-project-id.png)

### Set Unity Environment Name##set-unity-environment-name

`Set Unity Environment Name` 함수를 사용해 현재 인증 세션의 [Unity 환경 이름](./get-started.md#link-your-project)을 설정합니다. 함수는 `String`를 사용합니다.

> **Note:**
>
> **참고**: 이렇게 하면 프로젝트 설정에서 구성된 Unity 환경 이름이 오버라이드됩니다.


**Set Unity Environment Name:**
![Set Unity Environment Name](/api/media?file=/authentication-unreal/media/images/unreal-auth-set-env-name.png)
