SDKs code references for Unreal Engine
Easily embed Xsolla services with this ready-to-use libraries for Unreal Engine applications and games.
XsollaLoginSubsystem.h
1// Copyright 2024 Xsolla Inc. All Rights Reserved.
2
3#pragma once
4
5#include "XsollaLoginTypes.h"
6
7#include "XsollaUtilsDataModel.h"
8#include "XsollaUtilsHttpRequestHelper.h"
9
10#include "Blueprint/UserWidget.h"
11#include "Subsystems/GameInstanceSubsystem.h"
12#include "Subsystems/SubsystemCollection.h"
13#include "XsollaUtilsDataModel.h"
14
15#include "XsollaLoginSubsystem.generated.h"
16
17class FJsonObject;
20class FXsollaLoginHttpServer;
21
23DECLARE_DYNAMIC_DELEGATE(FOnRequestSuccess);
24DECLARE_DYNAMIC_DELEGATE(FOnSocialLinkingSuccess);
25DECLARE_DELEGATE_ThreeParams(FOnLoginDataError, int32, int32, const FString&);
26DECLARE_DELEGATE_OneParam(FOnLoginDataUpdate, const FXsollaLoginData&);
27DECLARE_DYNAMIC_DELEGATE_OneParam(FOnAuthUpdate, const FXsollaLoginData&, LoginData);
28DECLARE_DYNAMIC_DELEGATE_OneParam(FOnSocialUrlReceived, const FString&, Url);
29DECLARE_DYNAMIC_DELEGATE_OneParam(FOnSocialAccountLinkingHtmlReceived, const FString&, Content);
30DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnAuthError, const FString&, Code, const FString&, Description);
31DECLARE_DYNAMIC_DELEGATE_OneParam(FOnCodeReceived, const FString&, Code);
32DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnUserFriendsUpdate, const FXsollaFriendsData&, FriendsData, EXsollaFriendsType, type);
33DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUserSocialFriendsUpdate, const FXsollaSocialFriendsData&, SocialFriendsData);
34DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUserProfileReceived, const FXsollaPublicProfile&, UserProfile);
35DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUserSearchUpdate, const FXsollaUserSearchResult&, SearchResult);
36DECLARE_DYNAMIC_DELEGATE_OneParam(FOnCheckUserAgeSuccess, const FXsollaCheckUserAgeResult&, CheckUserAgeResult);
37DECLARE_DYNAMIC_DELEGATE_OneParam(FOnAccessTokenLoginSuccess, FString, AccessToken);
38DECLARE_DYNAMIC_DELEGATE_OneParam(FOnLinkEmailAndPasswordSuccess, bool, bNeedToConfirmEmail);
39DECLARE_DYNAMIC_DELEGATE_OneParam(FOnStartAuthSuccess, FString, OperationId);
40DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnAuthCodeSuccess, const FString&, Code, const FString&, OperationId);
41DECLARE_DYNAMIC_DELEGATE_OneParam(FOnAuthCodeTimeout, const FString&, OperationId);
42DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUserAttributesUpdate, const TArray<FXsollaUserAttribute>&, UserAttributes);
43DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUserDetailsUpdate, const FXsollaUserDetails&, UserDetails);
44DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUserDetailsParamUpdate, const FString&, Param);
45DECLARE_DYNAMIC_DELEGATE_OneParam(FOnSocialAuthLinksUpdate, const TArray<FXsollaSocialAuthLink>&, Links);
46DECLARE_DYNAMIC_DELEGATE_OneParam(FOnLinkedSocialNetworksUpdate, const TArray<FXsollaLinkedSocialNetworkData>&, LinkedSocialNetworks);
47DECLARE_DYNAMIC_DELEGATE_OneParam(FOnUserDevicesUpdate, const TArray<FXsollaUserDevice>&, UserDevices);
48DECLARE_DYNAMIC_DELEGATE(FOnAuthCancel);
49
50UCLASS()
51class XSOLLALOGIN_API UXsollaLoginSubsystem : public UGameInstanceSubsystem
52{
53 GENERATED_BODY()
54
55public:
57
58 // Begin USubsystem
59 virtual void Initialize(FSubsystemCollectionBase& Collection) override;
60 virtual void Deinitialize() override;
61 // End USubsystem
62
69 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login")
70 void Initialize(const FString& InProjectId, const FString& InLoginId, const FString& InClientId);
71
87 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "AdditionalFields, SuccessCallback, ErrorCallback"))
88 void RegisterUser(const FString& Username, const FString& Password, const FString& Email, const FString& State, const FString& Locale,
89 const bool PersonalDataProcessingConsent, const bool ReceiveNewsConsent, const TMap<FString, FString>& AdditionalFields,
90 const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
91
102 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
103 void ResendAccountConfirmationEmail(const FString& Username, const FString& State, const FString& Locale,
104 const FOnRequestSuccess& SuccessCallback, const FOnAuthError& ErrorCallback);
105
115 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
116 void AuthenticateUser(const FString& Username, const FString& Password,
117 const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback, const bool bRememberMe = false);
118
132 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (WorldContext = "WorldContextObject", AutoCreateRefTerm = "SuccessCallback, CancelCallback, ErrorCallback"))
133 void AuthWithXsollaWidget(UObject* WorldContextObject, UXsollaLoginBrowserWrapper*& BrowserWidget,
134 const FOnAuthUpdate& SuccessCallback, const FOnAuthCancel& CancelCallback, const FOnAuthError& ErrorCallback, const bool bRememberMe = false,
135 const FString& Locale = TEXT(""), const FString& State = TEXT("xsollatest"));
136
146 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
147 void ResetUserPassword(const FString& User, const FString& Locale, const FOnRequestSuccess& SuccessCallback, const FOnAuthError& ErrorCallback);
148
154 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
155 void ValidateToken(const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
156
166 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "AdditionalFields, SuccessCallback, ErrorCallback"))
167 void GetSocialAuthenticationUrl(const FString& ProviderName, const FString& State,
168 const FOnSocialUrlReceived& SuccessCallback, const FOnAuthError& ErrorCallback);
169
177 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (WorldContext = "WorldContextObject"))
178 void LaunchSocialAuthentication(UObject* WorldContextObject, UUserWidget*& BrowserWidget, const bool bRememberMe = false);
179
190 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, CancelCallback, ErrorCallback"))
191 void LaunchNativeSocialAuthentication(const FString& ProviderName,
192 const FOnAuthUpdate& SuccessCallback, const FOnAuthCancel& CancelCallback, const FOnAuthError& ErrorCallback, const bool bRememberMe = false, const FString& State = TEXT("xsollatest"));
193
204 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login")
205 void AuthenticateViaSocialNetwork(const FString& ProviderName,
206 const FOnAuthUpdate& SuccessCallback, const FOnAuthCancel& CancelCallback, const FOnAuthError& ErrorCallback,
207 const bool bRememberMe = false, const FString& State = TEXT("xsollatest"));
208
213 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login")
214 void SetToken(const FString& Token);
215
222 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
223 void RefreshToken(const FString& RefreshToken, const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
224
232 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
233 void ExchangeAuthenticationCodeToToken(const FString& AuthenticationCode, const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
234
247 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login")
248 void AuthenticateWithSessionTicket(const FString& ProviderName, const FString& SessionTicket, const FString& Code,
249 const FString& AppId, const FString& State,
250 const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback, const FString& Scope = TEXT(""));
251
261 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "AttributeKeys, SuccessCallback, ErrorCallback"))
262 void GetUserAttributes(const FString& AuthToken, const FString& UserId, const TArray<FString>& AttributeKeys,
263 const FOnUserAttributesUpdate& SuccessCallback, const FOnError& ErrorCallback);
264
273 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "AttributeKeys, SuccessCallback, ErrorCallback"))
274 void GetUserReadOnlyAttributes(const FString& AuthToken, const FString& UserId, const TArray<FString>& AttributeKeys,
275 const FOnUserAttributesUpdate& SuccessCallback, const FOnError& ErrorCallback);
276
287 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
288 void ModifyUserAttributes(const FString& AuthToken, const TArray<FXsollaUserAttribute>& AttributesToModify,
289 const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
290
299 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
300 void RemoveUserAttributes(const FString& AuthToken, const TArray<FString>& AttributesToRemove, const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
301
309 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
310 void CreateAccountLinkingCode(const FString& AuthToken, const FOnCodeReceived& SuccessCallback, const FOnError& ErrorCallback);
311
319 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
320 void CheckUserAge(const FString& DateOfBirth, const FOnCheckUserAgeSuccess& SuccessCallback, const FOnAuthError& ErrorCallback);
321
333 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
334 void LinkEmailAndPassword(const FString& AuthToken, const FString& Email, const FString& Password, const bool ReceiveNewsConsent, const FString& Username,
335 const FOnLinkEmailAndPasswordSuccess& SuccessCallback, const FOnError& ErrorCallback);
336
349 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
350 void LinkDeviceToAccount(const FString& AuthToken, const FString& PlatformName, const FString& DeviceName, const FString& DeviceId,
351 const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
352
363 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
364 void UnlinkDeviceFromAccount(const FString& AuthToken, const int64 DeviceId,
365 const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
366
378 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
379 void AuthenticateViaDeviceId(const FString& DeviceName, const FString& DeviceId, const FString& State,
380 const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
381
392 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
393 void AuthViaAccessTokenOfSocialNetwork(const FString& AuthToken, const FString& AuthTokenSecret, const FString& OpenId,
394 const FString& ProviderName, const FString& State,
395 const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
396
405 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
406 void StartAuthByPhoneNumber(const FString& PhoneNumber, const FString& State,
407 const FOnStartAuthSuccess& SuccessCallback, const FOnAuthError& ErrorCallback);
408
418 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
419 void CompleteAuthByPhoneNumber(const FString& Code, const FString& OperationId, const FString& PhoneNumber,
420 const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
421
430 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
431 void StartAuthByEmail(const FString& Email, const FString& State,
432 const FOnStartAuthSuccess& SuccessCallback, const FOnAuthError& ErrorCallback);
433
443 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
444 void CompleteAuthByEmail(const FString& Code, const FString& OperationId, const FString& Email,
445 const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
446
455 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, TimeoutCallback, ErrorCallback"))
456 void GetAuthConfirmationCode(const FString& UserId, const FString& OperationId,
457 const FOnAuthCodeSuccess& SuccessCallback, const FOnAuthCodeTimeout& TimeoutCallback, const FOnAuthError& ErrorCallback);
458
466 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
467 void GetUserDetails(const FString& AuthToken, const FOnUserDetailsUpdate& SuccessCallback, const FOnError& ErrorCallback);
468
481 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
482 void ModifyUserDetails(const FString& AuthToken, const FString& Birthday, const FString& FirstName, const FString& LastName, const FString& Gender, const FString& Nickname,
483 const FOnUserDetailsUpdate& SuccessCallback, const FOnError& ErrorCallback);
484
492 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
493 void GetUserEmail(const FString& AuthToken, const FOnUserDetailsParamUpdate& SuccessCallback, const FOnError& ErrorCallback);
494
502 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
503 void GetUserPhoneNumber(const FString& AuthToken, const FOnUserDetailsParamUpdate& SuccessCallback, const FOnError& ErrorCallback);
504
513 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
514 void ModifyUserPhoneNumber(const FString& AuthToken, const FString& PhoneNumber, const FOnUserDetailsParamUpdate& SuccessCallback, const FOnError& ErrorCallback);
515
524 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
525 void RemoveUserPhoneNumber(const FString& AuthToken, const FString& PhoneNumber, const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
526
535 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
536 void ModifyUserProfilePicture(const FString& AuthToken, UTexture2D* const Picture, const FOnUserDetailsParamUpdate& SuccessCallback, const FOnError& ErrorCallback);
537
545 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
546 void RemoveProfilePicture(const FString& AuthToken, const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
547
559 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
560 void GetFriends(const FString& AuthToken, const EXsollaFriendsType Type, const EXsollaUsersSortCriteria SortBy, const EXsollaUsersSortOrder SortOrder,
561 const FOnUserFriendsUpdate& SuccessCallback, const FOnError& ErrorCallback, const FString& After, const int Limit = 20);
562
571 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
572 void ModifyFriends(const FString& AuthToken, const EXsollaFriendAction Action, const FString& UserID, const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
573
584 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
585 void GetSocialAuthLinks(const FString& AuthToken, const FString& Locale, const FOnSocialAuthLinksUpdate& SuccessCallback, const FOnError& ErrorCallback);
586
597 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
598 void GetSocialFriends(const FString& AuthToken, const FString& Platform,
599 const FOnUserSocialFriendsUpdate& SuccessCallback, const FOnError& ErrorCallback, const int Offset = 0, const int Limit = 500, const bool FromThisGame = false);
600
608 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
609 void GetUsersFriends(const FString& AuthToken, const FString& Platform, const FOnCodeReceived& SuccessCallback, const FOnError& ErrorCallback);
610
618 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
619 void GetUserProfile(const FString& AuthToken, const FString& UserID, const FOnUserProfileReceived& SuccessCallback, const FOnError& ErrorCallback);
620
628 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
629 void GetUsersDevices(const FString& AuthToken, const FOnUserDevicesUpdate& SuccessCallback, const FOnError& ErrorCallback);
630
640 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
641 void SearchUsersByNickname(const FString& AuthToken, const FString& Nickname,
642 const FOnUserSearchUpdate& SuccessCallback, const FOnError& ErrorCallback, const int Offset = 0, const int Limit = 100);
643
653 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
654 void GetUrlToLinkSocialNetworkToUserAccount(const FString& AuthToken, const FString& ProviderName,
655 const FOnSocialAccountLinkingHtmlReceived& SuccessCallback, const FOnError& ErrorCallback);
656
667 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (WorldContext = "WorldContextObject", AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
668 void LinkSocialProvider(UObject* WorldContextObject, const FString& AuthToken, const FString& ProviderName,
669 const FOnSocialLinkingSuccess& SuccessCallback, const FOnError& ErrorCallback);
670
680 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
681 void UnlinkSocialProvider(const FString& AuthToken, const FString& ProviderName,
682 const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
683
690 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
691 void GetLinkedSocialNetworks(const FString& AuthToken, const FOnLinkedSocialNetworksUpdate& SuccessCallback, const FOnError& ErrorCallback);
692
700 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login", meta = (AutoCreateRefTerm = "SuccessCallback, ErrorCallback"))
701 void LogoutUser(const FString& AuthToken, const EXsollaSessionType Sessions,
702 const FOnRequestSuccess& SuccessCallback, const FOnError& ErrorCallback);
703
704protected:
705 void Default_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
706 FOnRequestSuccess SuccessCallback, FOnAuthError ErrorCallback);
707 void DefaultWithHandlerWrapper_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
708 FOnRequestSuccess SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
709 void UserLogin_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
710 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
711 void TokenVerify_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
712 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
713 void SocialAuthUrl_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
714 FOnSocialUrlReceived SuccessCallback, FOnAuthError ErrorCallback);
715 void GetUserAttributes_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
716 FOnUserAttributesUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
717 void GetReadOnlyUserAttributes_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
718 FOnUserAttributesUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
719 void AccountLinkingCode_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
720 FOnCodeReceived SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
721 void CheckUserAge_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
722 FOnCheckUserAgeSuccess SuccessCallback, FOnAuthError ErrorCallback);
723 void DeviceId_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
724 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
725 void RefreshToken_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
726 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
727 void InnerRefreshToken_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
728 FOnLoginDataUpdate SuccessCallback, FOnLoginDataError ErrorCallback);
729 void SessionTicket_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
730 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
731 void AuthViaAccessTokenOfSocialNetwork_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
732 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
733 void StartAuth_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
734 FOnStartAuthSuccess SuccessCallback, FOnAuthError ErrorCallback);
735 void CompleteAuthByPhoneNumber_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
736 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
737 void CompleteAuthByEmail_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
738 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
739 void GetAuthConfirmationCode_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
740 FOnAuthCodeSuccess SuccessCallback, FOnAuthCodeTimeout TimeoutCallback, FOnAuthError ErrorCallback);
741 void UserDetails_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
742 FOnUserDetailsUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
743 void UserEmail_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
744 FOnUserDetailsParamUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
745 void UserPhoneNumber_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
746 FOnUserDetailsParamUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
747 void ModifyPhoneNumber_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
748 FOnUserDetailsParamUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
749 void RemovePhoneNumber_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
750 FOnRequestSuccess SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
751 void UserProfilePicture_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
752 FOnUserDetailsParamUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
753 void UserProfilePictureRemove_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
754 FOnRequestSuccess SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
755 void UserFriends_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
756 FOnUserFriendsUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
757 void SocialAuthLinks_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
758 FOnSocialAuthLinksUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
759 void SocialFriends_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
760 FOnUserSocialFriendsUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
761 void GetUsersFriends_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
762 FOnCodeReceived SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
763 void UserProfile_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
764 FOnUserProfileReceived SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
765 void UserSearch_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
766 FOnUserSearchUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
767 void SocialAccountLinking_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
768 FOnSocialAccountLinkingHtmlReceived SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
769 void LinkedSocialNetworks_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
770 FOnLinkedSocialNetworksUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
771 void GetUsersDevices_HttpRequestComplete(const FHttpRequestPtr HttpRequest, const FHttpResponsePtr HttpResponse,
772 const bool bSucceeded, FOnUserDevicesUpdate SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
773 void LinkEmailAndPassword_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
774 FOnLinkEmailAndPasswordSuccess SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
775 void RegisterUser_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
776 FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
777 void LogoutUser_HttpRequestComplete(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded,
778 FOnRequestSuccess SuccessCallback, FErrorHandlersWrapper ErrorHandlersWrapper);
779
781 void HandleOAuthTokenRequest(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, bool bSucceeded, FOnAuthError& ErrorCallback, FOnAuthUpdate& SuccessCallback);
782
784 void HandleUrlWithCodeRequest(FHttpRequestPtr HttpRequest, FHttpResponsePtr HttpResponse, const bool bSucceeded, FOnAuthUpdate SuccessCallback, FOnAuthError ErrorCallback);
785
787 void HandleAskFieldsAuthentication(const FString& LoginUrl, const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
788
790 void HandleRequestOAuthError(XsollaHttpRequestError ErrorData, FOnAuthError ErrorCallback);
791
792 void InnerRefreshToken(const FString& RefreshToken, const FOnLoginDataUpdate& SuccessCallback, const FOnLoginDataError& ErrorCallback);
793
794private:
796 TSharedRef<IHttpRequest, ESPMode::ThreadSafe> CreateHttpRequest(const FString& Url, const EXsollaHttpRequestVerb Verb = EXsollaHttpRequestVerb::VERB_GET,
797 const FString& Content = FString(), const FString& AuthToken = FString(), const bool skipLogging = false);
798
800 void SetStringArrayField(TSharedPtr<FJsonObject> Object, const FString& FieldName, const TArray<FString>& Array) const;
801
803 FString ProjectID;
804
806 FString LoginID;
807
809 FString ClientID;
810
811public:
813 UFUNCTION(BlueprintPure, Category = "Xsolla|Login")
814 FXsollaLoginData GetLoginData() const;
815
817 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login")
818 void SetLoginData(const FXsollaLoginData& Data, const bool ClearCache = true);
819
821 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login")
822 void UpdateAuthTokenData(const FString& AccessToken, int ExpiresIn, const FString& RefreshToken, bool bRememberMe = true);
823
825 UFUNCTION(BlueprintCallable, Category = "Xsolla|Login")
826 void DropLoginData(const bool ClearCache = true);
827
829 void LoadSavedData();
830
832 void SaveData();
833
834 void HandleRequestError(const XsollaHttpRequestError& ErrorData, FErrorHandlersWrapper ErrorHandlersWrapper);
835protected:
838
839 UFUNCTION()
840 void SocialAuthUrlReceivedCallback(const FString& Url);
841
842 UFUNCTION()
843 void SocialLinkingUrlReceivedCallback(const FString& Url);
844
845private:
846 UPROPERTY()
847 TSubclassOf<UXsollaLoginBrowserWrapper> DefaultBrowserWidgetClass;
848
849 UPROPERTY()
850 TSubclassOf<UXsollaSocialLinkingBrowserWrapper> DefaultSocialLinkingBrowserWidgetClass;
851
852 UPROPERTY()
853 FOnAuthUpdate NativeSuccessCallback;
854
855 UPROPERTY()
856 FOnSocialLinkingSuccess CachedSocialLinkingSuccessCallback;
857
858 UPROPERTY()
859 FOnError CachedSocialLinkingErrorCallback;
860
861 UPROPERTY()
862 UObject* CachedWorldContextObject;
863
864 UPROPERTY()
865 FOnAuthCancel NativeCancelCallback;
866
867 UPROPERTY()
868 FOnAuthError NativeErrorCallback;
869
870 TSharedPtr<FXsollaLoginHttpServer> HttpServer;
871
872 void OnAuthParamsReceived(const TMap<FString, FString>& Params);
873
874 void ExchangeAuthenticationCodeToToken(const FString& AuthenticationCode, const FString& RedirectUri, const FOnAuthUpdate& SuccessCallback, const FOnAuthError& ErrorCallback);
875};
Definition: XsollaLoginBrowserWrapper.h:16
Definition: XsollaLoginSubsystem.h:52
Definition: XsollaSocialLinkingBrowserWrapper.h:16
Definition: XsollaLoginTypes.h:418
Definition: XsollaLoginTypes.h:265
Definition: XsollaLoginTypes.h:89
Definition: XsollaLoginTypes.h:344
Definition: XsollaLoginTypes.h:316
Definition: XsollaLoginTypes.h:116
Definition: XsollaLoginTypes.h:171
Definition: XsollaLoginTypes.h:376