유니티용 now.gg 로그인 모듈을 통해 유니티 내에서 now.gg 로그인을 사용하실 수 있습니다.
방법:
유니티용 now.gg 로그인 모듈은 유니티 패키지 파일 nowgg-payments-login.unitypackage
에 포함되어 있습니다.
방법:
nowgg-payments-login.
nitypackage
를 선택합니다.임포트 후 ‘NowGGSdk‘라는 폴더가 프로젝트에 추가되며 해당 폴더는 에셋 폴더 최상위 루트에서 확인하실 수 있습니다.
중요: NowGGSdk 폴더에는 now.gg 유틸리티 모듈과 관련된 모든 에셋이 포함되어 있으므로 수정하지 않습니다.
유니티 외부 종속성 관리자를 사용하여 프로젝트의 Assets/Plugins/Android
폴더에 필요한 모든 종속성을 다운로드하고 추가합니다.
방법:
now.gg 로그인 모듈 임포트 및 종속성 추가 후 이제 now.gg 로그인 모듈을 적용하실 수 있습니다.
now.gg 로그인 버튼 에셋은 now.gg SDK 패키지의 Assets/Login
디렉토리에 포함되어 있습니다.
now.gg 로그인을 포함하는 클래스를 생성하고 이를 로그인 프로세스를 시작하는 데 사용할 수 있는 게임 오브젝트에 추가합니다.
이때 다음 두 가지 중 하나를 사용하실 수 있습니다.
해당 프로세스로 now.gg 로그인을 적용하고 유저의 기본 프로필 정보를 가져오실 수 있습니다.
프로세스를 시작하기 위해 아래와 같이 client_id
를 사용하여 NowGGLoginSdkManager
의 로그인 기능을 호출합니다.
private string CLIENT_ID = "your_client_id"; public void Start() { NowGGLoginSdkManager.Instance.OnLoginSuccess += OnLoginSuccess; NowGGLoginSdkManager.Instance.OnLoginFailed += OnLoginFailed; } // 사용자가 로그인 버튼을 클릭하면 이 메서드를 호출하십시오. public void OnLoginButtonClick() { NowGGLoginSdkManager.Instance.Login(CLIENT_ID); } private void OnLoginSuccess(string email, string token, string hostUrl) { Debug.Log($"Login success with email: {email} and token is: {token}"); } private void OnLoginFailed(int errorCode, string errorMsg) { Debug.Log($"Login failed with error code: {errorCode} and message: {errorMsg}"); }
중요: now.gg 로그인 모듈와 관련된 응답은 OnLoginSuccess
및 OnLoginFailed
콜백 함수를 사용하여 처리하실 수 있습니다.
유저가 성공적으로 로그인하면 OnLoginSuccess
콜백 함수를 통해 유저 이메일과 함께 요청된 토큰을 받게 됩니다.
해당 프로세스를 통해 now.gg 로그인을 적용하고 보다 자세한 유저 및 세션 정보를 가져오실 수 있습니다.
이는 인증 코드를 사용하여 token
및 refresh_token
을 생성하는 보다 안전한 프로세스입니다.
아래와 같이 추가 변수 code
와 함께 client_id
를 사용하여 NowGGLoginSdkManager
클래스의 로그인 함수를 호출합니다.
private string CLIENT_ID = "your_client_id"; public void Start() { NowGGLoginSdkManager.Instance.OnLoginSuccess += OnLoginSuccess; NowGGLoginSdkManager.Instance.OnLoginFailed += OnLoginFailed; } // 사용자가 로그인 버튼을 클릭하면 이 메서드를 호출하십시오. public void OnLoginButtonClick() { NowGGLoginSdkManager.Instance.Login(CLIENT_ID, "code"); } private void OnLoginSuccess(string email, string token, string hostUrl) { Debug.Log($"Login success with email: {email} and authorization code is: {token}"); } private void OnLoginFailed(int errorCode, string errorMsg) { Debug.Log($"Login failed with error code: {errorCode} and message: {errorMsg}"); }
중요: now.gg 로그인 모듈와 관련된 응답은 OnLoginSuccess
및 OnLoginFailed
콜백 함수를 사용하여 처리하실 수 있습니다.
유저가 성공적으로 로그인하면 OnLoginSuccess
콜백 함수를 통해 유저 이메일과 함께 요청된 토큰을 받게 됩니다.
로그인이 실패하는 시나리오로 기본 로그인 및 고급 로그인 프로세스 모두에 적용됩니다.
로그인에 실패하면 OnLoginFailed
콜백 함수에서 오류 코드와 오류 메시지를 받게 되며 이후 받은 오류 메시지를 기반으로 해당 오류를 처리하실 수 있습니다.
“No nowGG account present(nowGG 계정이 없습니다)”라는 오류와 함께 로그인이 실패하는 경우 아래와 같이 런타임에 NowGGLoginSdkManager
클래스의 AddNowGGAccount
를 호출하여 계정을 추가하실 수 있습니다.
private void OnLoginFailed(int errorCode, string errorMsg) { statusText.text = "Login Failed: " + errorMsg; if (errorMsg.Equals("No nowgg account present") || errorCode == 1) NowGGLoginSdkManager.Instance.AddNowGGAccount(); }
성공적으로 로그인하면 이제 토큰을 갖게 되며 해당 토큰을 사용하여 유저 프로필 정보를 가져올 수 있습니다.
해당 token
을 여기를 참조하여 앱의 백엔드 서버에 사용하고 로그인한 유저의 프로필을 가져오시는 것을 권장해 드립니다.
앱에 백엔드 서버가 없는 경우 다음을 통해 유저 프로필 정보를 호출하실 수 있습니다.
‘기기 내’ API 호출을 통해 로그인한 유저의 프로필 정보를 가져오는 샘플 코드는 데모 프로젝트에서 참조하실 수 있습니다.
예를 들어, 로그인한 유저의 userId를 포함한 유저 프로필 정보를 호출하려면 LoginTokenVerification
클래스의 VerifyToken
을 호출하고 TokenVerifyResponse
콜백의 userDataVerified
를 통해 필요한 정보를 가져오실 수 있습니다.
아래는 예시입니다.
private void OnLoginSuccess(string email, string token, string hostUrl) { Debug.Log($"Login success with email: {email} and token is: {token}"); // 유저 세부 정보를 얻기 위해 토큰을 인증하며 보안 강화를 위해 백엔드 서버에서 토큰을 인증하시는 것을 권장해 드립니다. StartCoroutine(LoginTokenVefication.VerifyToken(token, CLIENT_ID, TokenVerifyResponse)); } private void TokenVerifyResponse(UserDataVerified userDataVerified) { Debug.Log($"User id: {userDataVerified.userId}"); string userId = userDataVerified.userId; string name = userDataVerified.name; string email = userDataVerified.email; string picture = userDataVerified.picture; }
모듈 데모 프로젝트 내에서도 해당 클래스를 확인하실 수 있습니다.
using System; using System.Collections; using UnityEngine; using UnityEngine.Networking; public class LoginTokenVerification : MonoBehaviour { public static IEnumerator VerifyToken(string token, string client_id, Action tokenVerifyResponse) { WWWForm form = new WWWForm(); form.AddField("token_type", "id_token"); form.AddField("token", token); form.AddField("client_id", client_id); UnityWebRequest www = UnityWebRequest.Post("https://now.gg/accounts/oauth2/v1/verify-token", form); yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.Log($"Error in token verification: {www.error}"); } else { Debug.Log($"token verification response: {www.downloadHandler.text}"); TokenVerification tokenVerification = JsonUtility.FromJson(www.downloadHandler.text); if (tokenVerifyResponse != null) tokenVerifyResponse(tokenVerification.userData); } } } [System.Serializable] public class TokenVerification { public string success; public string code; [SerializeField] private UserDataVerified decodedData; public UserDataVerified userData { get { return decodedData; } } public string msg; } [System.Serializable] public class UserDataVerified { public string iss; public string sub; public string aud; public string exp; public string iat; public string auth_time; public string tokenId; public string sessionId; public string scope; public string email; public string name; public string picture; public string mobile; public string userId; }
유저 세부 정보가 있으면 해당 정보를 데이터베이스에 저장하고 다음에 유저가 앱을 시작할 때 로그인 프로세스를 건너뛰는 데 사용해야 합니다.
중요:
userDataVerified.userId
를 통해 클라이언트에서 userId를 가져올 수 있습니다.설명:
token
과 refresh_token
을 받습니다.
인증 코드가 있을 시 코드를 앱 백엔드 서버로 보내고 토큰 생성 API를 사용하여 코드를 now.gg 서버와 교환한 뒤 token
과 refresh_token
을 수령합니다.
token
을 사용하여 now.gg API(유저 정보 및 세션 정보)를 호출합니다.token
이 만료될 때 새 토큰을 얻으려면 refresh_token
을 저장하시기 바랍니다.토큰 수령 후 이를 사용하여 유저 및 세션 정보를 가져오실 수 있습니다.
token
이 만료된 경우 토큰 생성 API를 사용하여 refresh_token
으로 토큰을 생성하실 수 있습니다.
dev-support@now.gg로 문의해 주시면 신속히 도와드리겠습니다.
유저 계정 서비스
유저 계정 서비스
문서 Rev. 1.0