From f573a7cf1fcbe161eb29f0be88ff2975b1501c66 Mon Sep 17 00:00:00 2001 From: tudor <7089284+tudddorrr@users.noreply.github.com> Date: Tue, 24 Feb 2026 20:54:39 +0000 Subject: [PATCH] add api for changing a player with auth's identifier --- .../Talo/Runtime/APIs/PlayerAuthAPI.cs | 15 ++++++++++++++- .../Requests/PlayerAuthChangeIdentifierRequest.cs | 9 +++++++++ .../PlayerAuthChangeIdentifierRequest.cs.meta | 2 ++ .../PlayerAuthChangeIdentifierResponse.cs | 8 ++++++++ .../PlayerAuthChangeIdentifierResponse.cs.meta | 2 ++ .../Talo/Runtime/Utils/PlayerAuthException.cs | 3 ++- .../Talo/Runtime/Utils/SessionManager.cs | 13 ++++++++++++- .../Settings/Panel Settings.asset | 3 +++ 8 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 Assets/Talo Game Services/Talo/Runtime/Requests/PlayerAuthChangeIdentifierRequest.cs create mode 100644 Assets/Talo Game Services/Talo/Runtime/Requests/PlayerAuthChangeIdentifierRequest.cs.meta create mode 100644 Assets/Talo Game Services/Talo/Runtime/Responses/PlayerAuthChangeIdentifierResponse.cs create mode 100644 Assets/Talo Game Services/Talo/Runtime/Responses/PlayerAuthChangeIdentifierResponse.cs.meta diff --git a/Assets/Talo Game Services/Talo/Runtime/APIs/PlayerAuthAPI.cs b/Assets/Talo Game Services/Talo/Runtime/APIs/PlayerAuthAPI.cs index 0c342ca..1bc3b55 100644 --- a/Assets/Talo Game Services/Talo/Runtime/APIs/PlayerAuthAPI.cs +++ b/Assets/Talo Game Services/Talo/Runtime/APIs/PlayerAuthAPI.cs @@ -6,7 +6,7 @@ namespace TaloGameServices { public class PlayerAuthAPI : BaseAPI { - private SessionManager _sessionManager = new(); + private readonly SessionManager _sessionManager = new(); public SessionManager SessionManager => _sessionManager; @@ -114,6 +114,19 @@ public async Task ChangeEmail(string currentPassword, string newEmail) await Call(uri, "POST", content); } + public async Task ChangeIdentifier(string currentPassword, string newIdentifier) + { + var uri = new Uri($"{baseUrl}/change_identifier"); + string content = JsonUtility.ToJson(new PlayerAuthChangeIdentifierRequest { + currentPassword = currentPassword, + newIdentifier = newIdentifier + }); + var json = await Call(uri, "POST", content); + + var res = JsonUtility.FromJson(json); + _sessionManager.HandleIdentifierUpdated(res); + } + public async Task ForgotPassword(string email) { var uri = new Uri($"{baseUrl}/forgot_password"); diff --git a/Assets/Talo Game Services/Talo/Runtime/Requests/PlayerAuthChangeIdentifierRequest.cs b/Assets/Talo Game Services/Talo/Runtime/Requests/PlayerAuthChangeIdentifierRequest.cs new file mode 100644 index 0000000..84c8755 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Requests/PlayerAuthChangeIdentifierRequest.cs @@ -0,0 +1,9 @@ +namespace TaloGameServices +{ + [System.Serializable] + public class PlayerAuthChangeIdentifierRequest + { + public string currentPassword; + public string newIdentifier; + } +} diff --git a/Assets/Talo Game Services/Talo/Runtime/Requests/PlayerAuthChangeIdentifierRequest.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Requests/PlayerAuthChangeIdentifierRequest.cs.meta new file mode 100644 index 0000000..9f9ddad --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Requests/PlayerAuthChangeIdentifierRequest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 57cdb010475b8496f8a1f16fc88bb404 \ No newline at end of file diff --git a/Assets/Talo Game Services/Talo/Runtime/Responses/PlayerAuthChangeIdentifierResponse.cs b/Assets/Talo Game Services/Talo/Runtime/Responses/PlayerAuthChangeIdentifierResponse.cs new file mode 100644 index 0000000..be610d9 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Responses/PlayerAuthChangeIdentifierResponse.cs @@ -0,0 +1,8 @@ +namespace TaloGameServices +{ + [System.Serializable] + public class PlayerAuthChangeIdentifierResponse + { + public PlayerAlias alias; + } +} diff --git a/Assets/Talo Game Services/Talo/Runtime/Responses/PlayerAuthChangeIdentifierResponse.cs.meta b/Assets/Talo Game Services/Talo/Runtime/Responses/PlayerAuthChangeIdentifierResponse.cs.meta new file mode 100644 index 0000000..a265741 --- /dev/null +++ b/Assets/Talo Game Services/Talo/Runtime/Responses/PlayerAuthChangeIdentifierResponse.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bfb958912de184a41ac04d92e78ea63b \ No newline at end of file diff --git a/Assets/Talo Game Services/Talo/Runtime/Utils/PlayerAuthException.cs b/Assets/Talo Game Services/Talo/Runtime/Utils/PlayerAuthException.cs index 47e7f6d..9852771 100644 --- a/Assets/Talo Game Services/Talo/Runtime/Utils/PlayerAuthException.cs +++ b/Assets/Talo Game Services/Talo/Runtime/Utils/PlayerAuthException.cs @@ -14,7 +14,8 @@ public enum PlayerAuthErrorCode { NEW_EMAIL_MATCHES_CURRENT_EMAIL, PASSWORD_RESET_CODE_INVALID, VERIFICATION_EMAIL_REQUIRED, - INVALID_EMAIL + INVALID_EMAIL, + NEW_IDENTIFIER_MATCHES_CURRENT_IDENTIFIER } public class PlayerAuthException : Exception diff --git a/Assets/Talo Game Services/Talo/Runtime/Utils/SessionManager.cs b/Assets/Talo Game Services/Talo/Runtime/Utils/SessionManager.cs index 6c855d9..5a4145a 100644 --- a/Assets/Talo Game Services/Talo/Runtime/Utils/SessionManager.cs +++ b/Assets/Talo Game Services/Talo/Runtime/Utils/SessionManager.cs @@ -15,10 +15,15 @@ public void HandleSessionCreated(PlayerAuthSessionResponse res) Talo.Socket.SetSocketToken(res.socketToken); } + private void SetIdentifierPlayerPref() + { + PlayerPrefs.SetString("TaloSessionIdentifier", Talo.CurrentAlias.identifier); + } + private void SaveSession(string sessionToken) { PlayerPrefs.SetString("TaloSessionToken", sessionToken); - PlayerPrefs.SetString("TaloSessionIdentifier", Talo.CurrentAlias.identifier); + SetIdentifierPlayerPref(); } public async Task ClearSession() @@ -42,5 +47,11 @@ public bool CheckForSession() { return !string.IsNullOrEmpty(GetSessionToken()); } + + public void HandleIdentifierUpdated(PlayerAuthChangeIdentifierResponse res) + { + Talo.CurrentAlias = res.alias; + SetIdentifierPlayerPref(); + } } } diff --git a/Assets/Talo Game Services/Talo/Samples/AuthenticationDemo/Settings/Panel Settings.asset b/Assets/Talo Game Services/Talo/Samples/AuthenticationDemo/Settings/Panel Settings.asset index f0f27ab..2298b2f 100644 --- a/Assets/Talo Game Services/Talo/Samples/AuthenticationDemo/Settings/Panel Settings.asset +++ b/Assets/Talo Game Services/Talo/Samples/AuthenticationDemo/Settings/Panel Settings.asset @@ -41,6 +41,9 @@ MonoBehaviour: m_AtlasBlitShader: {fileID: 9101, guid: 0000000000000000f000000000000000, type: 0} m_RuntimeShader: {fileID: 9100, guid: 0000000000000000f000000000000000, type: 0} m_RuntimeWorldShader: {fileID: 9102, guid: 0000000000000000f000000000000000, type: 0} + m_SDFShader: {fileID: 19011, guid: 0000000000000000f000000000000000, type: 0} + m_BitmapShader: {fileID: 9001, guid: 0000000000000000f000000000000000, type: 0} + m_SpriteShader: {fileID: 19012, guid: 0000000000000000f000000000000000, type: 0} m_ICUDataAsset: {fileID: 0} forceGammaRendering: 0 textSettings: {fileID: 0}