PUN Classic (v1), PUN 2 and Bolt are in maintenance mode. We will support Unity 2022 with PUN 2, but no new features will be added. Of course all your PUN & Bolt projects will continue to work and run with the known performance in the future.
For any upcoming or new projects: please switch to Photon Fusion or Quantum.
Photon Steam 인증
목차
어플리케이션 설정
인증 공급자로 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
가 될 수 있습니다: 인증시 퍼블리셔 밴을 사용하여 사용자가 추방되었는지 확인합니다. 여기에서 상세 내용을 확인하십시오. 이를 사용하는 것은 인증시 추가적인 지연이 발생할 수 있으므로 필요할 때만 사용하도록 합니다.
클라이언트 코드
클라이언트는 반드시 Valve의 Steamworks API를 사용하여 세션 티켓을 받아야 합니다. 이 티켓은 클라이언트가 유효한 Steam 사용자임을 증명해줍니다.
Steamworks.NET 의 Unity 버전을 임포트하려면 이 페이지에 나열되어 있는 명령을 따르십시오.
티켓 받기
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();
}
티켓 전송
클라이언트는 반드시 사용자의 세션 티켓(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
티켓 취소
인증이 수행된 후 티켓을 취소하거나 원복하는 것이 권고됩니다.
PUN에서 첫 번째 콜백이 트리거 되고 티켓을 취소할 수 있는 곳은 OnConnectedToPhoton
입니다:
private void OnConnectedToPhoton()
{
SteamUser.CancelAuthTicket(hAuthTicket);
}