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

# Players & Auth

> Sign players in with email, device, Google, Apple, or Steam — all through the SDK.

export const Scope = ({children}) => <Info>
    <b>Scope:</b> {children}
  </Info>;

Flock supports several player sign-in methods, all through the SDK. See
[Authentication](/authentication) for how the SDK manages game and player sessions.

<Scope>players are accounts within a single **game**.</Scope>

<Tabs>
  <Tab title="Dashboard">
    Browse and manage your game's players from the Flock dashboard — search accounts, inspect
    profiles, and review linked providers.

    <Frame caption="Browse and manage players in the Flock dashboard.">
      <img src="https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/players.png?fit=max&auto=format&n=TGGmq_oWzDacAqHl&q=85&s=ff4f9ebbcedec476cfe2e0520f56086e" alt="Players list" width="1440" height="866" data-path="images/guides/players.png" />
    </Frame>
  </Tab>

  <Tab title="SDK">
    Each method is a `LoginWith…Async` call on `FlockClient.Instance.Authentication`. They **throw**
    on failure.

    <CardGroup cols={2}>
      <Card title="Email / password" icon="envelope">
        `LoginWithEmailAsync` — classic account sign-in.
      </Card>

      <Card title="Device ID" icon="mobile">
        `LoginWithDeviceAsync` — frictionless guest sign-in keyed to a device.
      </Card>

      <Card title="Google / Apple" icon="google">
        `LoginWithGoogleAsync` / `LoginWithAppleAsync` — platform identity.
      </Card>

      <Card title="Steam / Facebook / Discord" icon="steam">
        `LoginWithSteamAsync`, `LoginWithFacebookAsync`, `LoginWithDiscordAsync`.
      </Card>
    </CardGroup>

    ```csharp theme={null}
    await FlockClient.Instance.Authentication.LoginWithEmailAsync(email, password);
    Debug.Log($"Signed in as {FlockClient.Instance.CurrentPlayerId}");
    ```

    Registration happens automatically the first time a player signs in, so there's no separate
    sign-up step.
  </Tab>
</Tabs>

## Sessions

The SDK keeps the player signed in and refreshes their session automatically — you never handle
tokens or expiry yourself. If a player needs to re-authenticate, the SDK raises
`FlockEvents.OnAuthExpired`.
