> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PartyXblTokenAndSignatureRequestedStateChange

> Reference for the PartyXblTokenAndSignatureRequested state change, requesting an XBOX Live token and signature to complete a PlayFab Party HTTP call.

Information specific to the *TokenAndSignatureRequested* type of state change.

## Syntax

```cpp theme={null}
struct PartyXblTokenAndSignatureRequestedStateChange : PartyXblStateChange {  
    uint32_t correlationId;  
    PartyString method;  
    PartyString url;  
    uint32_t headerCount;  
    PartyXblHttpHeader* headers;  
    uint32_t bodySize;  
    const void* body;  
    PartyBool forceRefresh;  
    PartyBool allUsers;  
    PartyXblLocalChatUser* localChatUser;  
}  
```

### Members

**`correlationId`**   uint32\_t

Opaque identifier used to associate the token and signature request with the internal HTTP request. Use this identifier when calling [PartyXblManager::CompleteGetTokenAndSignatureRequest()](/services/playfab/multiplayer/networking/xblreference/classes/PartyXblManager/methods/partyxblmanager_completegettokenandsignaturerequest) to complete the operation.

**`method`**   [PartyString](/services/playfab/multiplayer/networking/reference/typedefs)

The HTTP method for the request, such as "GET" or "POST".

**`url`**   [PartyString](/services/playfab/multiplayer/networking/reference/typedefs)

The URL for the HTTP request that needs a token and signature (fully escaped).

**`headerCount`**   uint32\_t

The number of headers for the HTTP request.

**`headers`**   [PartyXblHttpHeader](/services/playfab/multiplayer/networking/xblreference/structs/partyxblhttpheader)\*\
*array of size `headerCount`*

The headers for the HTTP request.

**`bodySize`**   uint32\_t

The size of the request body in bytes.

**`body`**   const void\*\
*buffer of size `bodySize` bytes*

The request body.

**`forceRefresh`**   [PartyBool](/services/playfab/multiplayer/networking/reference/typedefs)

If `true` the token must be refreshed, ignoring any cached token.

**`allUsers`**   [PartyBool](/services/playfab/multiplayer/networking/reference/typedefs)

If `true`, a token should be requested for all users rather than a specific user. In the case `localChatUser` will be nullptr.

**`localChatUser`**   [PartyXblLocalChatUser](/services/playfab/multiplayer/networking/xblreference/classes/PartyXblLocalChatUser/partyxbllocalchatuser)\*\
*may be nullptr*

The local chat user that should be used to retrieve the token and signature.

This field is only valid when `allUsers` is set to `false`.

## Remarks

The title can use the XBOX Authentication Library (XAL) to fulfill these requests by calling the XalUserGetTokenAndSignatureSilentlyAsync() function. <br /><br /> Use [PartyXblManager::CompleteGetTokenAndSignatureRequest()](/services/playfab/multiplayer/networking/xblreference/classes/PartyXblManager/methods/partyxblmanager_completegettokenandsignaturerequest) to provide the token and signature and complete the operation.

## Requirements

**Header:** PartyXboxLive.h

## See also

[PartyXboxLive members](/services/playfab/multiplayer/networking/xblreference/partyxboxlive_members)


## Related topics

- [PartyXblManager::CompleteGetTokenAndSignatureRequest](/services/playfab/multiplayer/networking/xblreference/classes/PartyXblManager/methods/partyxblmanager_completegettokenandsignaturerequest.md)
- [PartyXblStateChangeType](/services/playfab/multiplayer/networking/xblreference/enums/partyxblstatechangetype.md)
- [PartyXboxLive C/C++ API overview](/services/playfab/multiplayer/networking/xblreference/partyxboxlive_members.md)
- [XBOX Live helper library for PlayFab Party](/services/playfab/multiplayer/networking/party-xbox-live-guide.md)
- [PlayFab integration for XBOX services titles](/services/xbox-services/playfab-integration.md)
