// 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); }; }
private void SendErrorCallback(Error error, Callback callback) { var result = new IdentityCallbackArgs { error = error, subsystem = this, }; callback?.Invoke(result); }
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); }