PUN Classic(PUN1이라고도 불립니다)은 PUN의 첫 버전입니다.         현재는 리팩토링 및 기능 확장에 의해 PUN2로 새롭게 바뀌었습니다.          새 프로젝트에는 PUN2를 이용해 주시고, 기존의 프로젝트도 가능하면 PUN1에서 PUN2로 옮기는 것을 권장합니다.  자세한 내용은: "마이그레이션 노트". PUN Classic은 곧 점검이 시작됩니다.        중요한 버그의 수정과 Unity의 신버전의 지원 등을 예정하고 있습니다. 신기능의 추가는 PUN2에서만 이루어지므로 주의해 주십시오.

Photon Steam 인증

Contents

어플리케이션 설정

인증 공급자로 Steam을 추가하는 것은 쉬우며Photon 어플리케이션의 관리화면에서 몇 초만에 수행할 수 있습니다. 어플리케이션의 "관리" 페이지로 이동하여 "인증" 섹션까지 아래로 스크롤합니다. Steam에 대해 새로운 인증 공급자를 추가하거나 기존것을 편집한다면, 다음을 필수적으로 설정해야 합니다:

  • apiKeySecret: Steam 퍼블리셔 Web API 키입니다. 키를 받는 방법에 대해서는 여기를 읽어보십시오.
  • appid: Steam의 ID 입니다. 전에 Steam Greenlight로 알려져 있는 Steam Direct 프로세스를 통해 받을 수 있습니다.
  • verifyOwnership: true 또는 false 가 될 수 있습니다: 인증하는 동안 소유권 검증을 사용하거나 사용하지 않도록 합니다. 이를 통해 사용자가 게임에 대해 진짜 소유하고 있는지 여부에 대해 검증할 수 있습니다.(게임을 구매했고 라이브러리에 가지고 있는지) . 이 단계에서, 사용하도록 되어 있다면, 사용자 세션 티켓 확인 후 바로 수행됩니다. 이것을 사용하게 하면 인증시 추가적인 지연이 발생할 수 있으므로 필요할 때만 사용하도록 합니다.
  • verifyVacBan: true 또는 false 가 될 수 있습니다: 인증할 때 Valve의 Anti-Cheat(VAC)을 사용하여 사용자가 추방되었는지 여부를 확인합니다. 여기에서 상세 내용을 확인하십시오. 이를 사용하는 것은 인증시 추가적인 지연이 발생할 수 있으므로 필요할 때만 사용하도록 합니다.
  • verifyPubBan: true 또는 false 가 될 수 있습니다: 인증시 퍼블리셔 밴을 사용하여 사용자가 추방되었는지 확인합니다. 여기에서 상세 내용을 확인하십시오. 이를 사용하는 것은 인증시 추가적인 지연이 발생할 수 있으므로 필요할 때만 사용하도록 합니다.

Back To Top

클라이언트 코드

클라이언트는 반드시 Valve의 Steamworks API를 사용하여 세션 티켓을 받아야 합니다. 이 티켓은 클라이언트가 유효한 Steam 사용자임을 증명해줍니다.

Steamworks.NET 의 Unity 버전을 임포트하려면 이 페이지에 나열되어 있는 명령을 따르십시오.

Back To Top

티켓 받기

Steamworks API를 사용하여 세션 티켓을 받기위해 다음 코드를 사용하고 16진수 인코딩된 UTF-8 문자열로 변환하십시오:

// hAuthTicket should be saved so you can use it to cancel the ticket as soon as you are done with it
public string GetSteamAuthTicket(out HAuthTicket hAuthTicket) 
{
    byte[] ticketByteArray = new byte[1024];
    uint ticketSize;
    hAuthTicket = SteamUser.GetAuthSessionTicket(ticketByteArray, ticketByteArray.Length, out ticketSize);
    System.Array.Resize(ref ticketByteArray, (int)ticketSize);
    StringBuilder sb = new StringBuilder();
    for(int i=0; i < ticketSize; i++) 
    {
        sb.AppendFormat("{0:x2}", ticketByteArray[i]);
    }
    return sb.ToString();
}

Back To Top

티켓 전송

클라이언트는 반드시 사용자의 세션 티켓(16진수 인코딩된 UTF-8 문자열로 변환 후)을 "티켓" 쿼리 스트링 키의 값으로 전송해야 합니다.

PhotonNetwork.AuthValues = new AuthenticationValues();
PhotonNetwork.AuthValues.AuthType = CustomAuthenticationType.Steam;
PhotonNetwork.AuthValues.AddAuthParameter("ticket", SteamAuthSessionTicket);
// do not set AuthValues.Token or authentication will fail
// connect

Back To Top

티켓 취소

인증이 수행된 후 티켓을 취소하거나 원복하는 것이 권고됩니다.

PUN에서 첫 번째 콜백이 트리거 되고 티켓을 취소할 수 있는 곳은 OnConnectedToPhoton 입니다:

private void OnConnectedToPhoton()
{
    SteamUser.CancelAuthTicket(hAuthTicket);
}

기술문서 TOP으로 돌아가기