Пример #1
0
        // DoUserResponse executes http requests and handles the returned user info.
        private void DoUserResponse(HttpRequest <UserResponse> request, Callback callback)
        {
            var result = request.Send();

            result.completed += op =>
            {
                var resp = request.HandleResponse();
                if (resp.error != null)
                {
                    SendErrorCallback(resp.error, callback);
                    return;
                }
                ;

                var callbackArg = new IdentityCallbackArgs
                {
                    userInfo = new UserInfo
                    {
                        userId        = resp.result.id,
                        email         = resp.result.email,
                        displayName   = resp.result.displayName,
                        emailVerified = resp.result.emailVerified,
                        disabled      = resp.result.disabled,
                        externalIds   = convertExternalIdList(resp.result.externalIds),
                        isAnonymous   = (resp.result.externalIds?.Length ?? 0) == 0,
                        photoUrl      = resp.result.photoUrl,
                    },
                    accessToken = m_State.accessToken,
                    subsystem   = this,
                };

                callback?.Invoke(callbackArg);
            };
        }
Пример #2
0
        private void SendErrorCallback(Error error, Callback callback)
        {
            var result = new IdentityCallbackArgs
            {
                error     = error,
                subsystem = this,
            };

            callback?.Invoke(result);
        }
Пример #3
0
        private void SaveOAuthTokenResponse(TokenResponse response, Callback callback)
        {
            var decodedToken = UnityPlayerIdentityUtility.DecodeJWT <IDToken>(response.id_token);

            var result = new IdentityCallbackArgs
            {
                userInfo    = ExtractUserInfo(decodedToken),
                accessToken = response.access_token,
                subsystem   = this,
            };

            m_State.refreshToken = response.refresh_token;
            m_State.accessToken  = response.access_token;

            PersistTokens();

            // Force update user info by calling GetUser
            GetUser(result.userInfo.userId, callback);
        }