-
Notifications
You must be signed in to change notification settings - Fork 129
CloudBread를 사용하여 Flappy Bird 게임에 서버 구축 2. 애저 모바일 앱 사용하기
YoonSeok Hong edited this page Oct 22, 2017
·
7 revisions
Azure Mobile App 은 HTTP RESTful API 를 지원하기 때문에, 어떠한 플랫폼에서든 Http Request만으로 사용 할 수 있습니다. CloudBread 역시 Azure Mobile App 을 바탕으로 하기 때문에, HTTP Request 하는 것만 익숙해지면, 쉽게 사용 하실 수 있습니다.
Facebook SDK 에서 받아온 User Token을 사용하여, 애저에서 발급하는 토큰을 발급받을 것입니다. 애저 인증 기능을 사용하기 위해서는 HTTP Request 할 때, Header 에 애저에서 발급받은 토큰을 항상 넣어야 한다는 것입니다.
다음은 HTTP Request 를 하기 위해 꼭 필요한 헤더 값 입니다.
"ZUMO-API-VERSION" : 2.0.0
"Accept" : "application/json"
"Content-Type" : "application/json"
"X-ZUMO-FEATURES" : "AJ"
"x-zumo-auth" : "<애저에서 발급받은 토큰>"
이 때, Azure 에서 발급받은 토큰을 x-zumo-auth
에 넣어 http 호출을 함으로써, 비정상적인 Http 호출을 막을 수 있습니다.
- 레포지토리의 코드를 다운받습니다. 4th-Offline-Camp-master/CloudBread-Authentication 안에 있는 CloudBread 폴더를 프로젝트에 추가합니다. CloudBread 폴더 안에 다음과 같은 파일을 필요한 파일들 입니다.
AuthData.cs
AzureAuthentication.cs
AzureMobileAppRequestHelper.cs
CloudBread.cs
MemberData.cs
MemberGameInfo.cs
WWWHelper.cs
'주의' : 만약 프로젝트에 CloudBread-Unity-SDK 가 추가되어있다면, 지우고 다음 위 단계를 진행해주세요~
- Json 파싱을 위해 JsonFX 파일을 링크에서 다운받습니다. JsonFX Signed_v2.0.zip 다운로드
프로젝트의 Assets - Plugs 폴더에 다운받은
JsonFx.Json.dll
파일을 넣습니다.
FacebookLoginScipt.cs 스크립트에서 CloudBread 클래스의 Login 함수 호출하기 (// TODO 부분에 추가하기)
CloudBread cb = new CloudBread();
cb.Login(AzureAuthentication.AuthenticationProvider.Facebook, aToken.TokenString, Callback_login);
Login 콜백 함수 구현
private void Callback_login(string id, WWW www)
{
print(www.text);
string resultJson = www.text;
JsonReader jsonReader = new JsonReader();
AuthData resultData = jsonReader.Read<AuthData>(resultJson);
// Azure 인증을 위해 발급받은 Azure Token 을 헤더에 추가
AzureMobileAppRequestHelper.AuthToken = resultData.authenticationToken;
// 게임에서 사용 할 userId 를 PlayerPrefs 에 저장
// 원래 게임에서는 아래와 같이, Azure 에서 제공해 주는 userID 를 넣는 것이 맞지만,
// 데모 서버를 사용하는 분들은 임의의 아이디를 넣어서 다른 사람들과 충돌이 나지 않도록 합시다
PlayerPrefs.SetString("userId", resultData.user.userId);
}
애저에서 Token과 UserID를 json 형식 제공
{
"authenticationToken" : "<발급받은 Token>",
"user" : {
"userId" : "sid:<발급받은 sid>"
}
}
- authenticationToken 을 호출 할 때마다 헤더에
X-ZUMO-AUTH
값으로 넣어야만 서버로부터 응답을 받을 수 있다. - userId의 sid 를 게임에서 유일한 값 (
memberID
)로 사용