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

# authentication - Authentication & access data

> The authentication node manages credentials for external auth providers such as Google OAuth 2.0 and Firebase Cloud Messaging used by the WEBSALE shop.

The `authentication` configuration section is used to manage authentication information and access data for external services, interfaces or systems.

In the future this section will allow you to integrate various authentication providers (e.g. Google, Apple, Microsoft or custom OAuth services). Each authentication unit is configured as its own entry with individual parameters.

Currently the configuration for Google OAuth 2.0 is available; it manages the credentials of a Google service account for Firebase Cloud Messaging (FCM) through the entry\
`authentication.googleOAuthKey.FCMKey`.

***

## `authentication*` - Basic structure

The basic structure of the `authentication` node is shown below:

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "authentication": {
      "googleOAuthKey": {...}
    }
}
```

#### Parameter overview

| **Parameter**    | **Description**                             |
| ---------------- | ------------------------------------------- |
| `googleOAuthKey` | Authentication for Firebase Cloud Messaging |

***

## `authentication.googleOAuthKey.FCMKey` - Authentication for Firebase Cloud Messaging

For the shop system to be able to send push notifications, for example via the app or the browser, it needs to authenticate against Firebase.

The `authentication.googleOAuthKey.FCMKey` configuration section contains the credentials of the Google service account used for authenticating against Firebase Cloud Messaging (FCM).

This data enables the system to send push notifications via the Google infrastructure or to carry out other FCM-related actions automatically.

Each entry provides the complete authentication information of the service account, including project ID, client email, private key and the associated OAuth endpoints.

#### Example configuration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "authProviderX509CertUrl": "https://www.googleapis.com/oauth2/v1/certs",
  "authUri": "https://accounts.google.com/o/oauth2/auth",
  "clientEmail": "<CLIENTEMAIL>",
  "clientId": "<CLIENTID>",
  "clientX509CertUrl": "https://www.googleapis.com/robot/v1/metadata/x509/<CLIENTEMAIL>",
  "name": "FCM Service Account",
  "privateKey": "<PRIVATEKEY>",
  "privateKeyId": "<PRIVATEKEYID>",
  "projectId": "<PROJECTID>",
  "tokenUri": "https://oauth2.googleapis.com/token",
  "type": "service_account",
  "universeDomain": "googleapis.com"
}
```

#### Parameter overview

| **Parameter**             | **Type** | **Description**                                                                     |
| ------------------------- | -------- | ----------------------------------------------------------------------------------- |
| `authProviderX509CertUrl` | string   | URL through which the public certificates of the authentication are made available. |
| `authUri`                 | string   | Standard URL for OAuth token handling at Google.                                    |
| `clientEmail`             | string   | Email address of the service account.                                               |
| `clientId`                | string   | Internal ID of the service account.                                                 |
| `clientX509CertUrl`       | string   | URL through which the public certificates of the authentication are made available. |
| `name`                    | string   | Display name of the service account in the system.                                  |
| `privateKey`              | string   | Private key of the service account (used to sign tokens).                           |
| `privateKeyId`            | string   | Key ID of the service account (used to sign tokens).                                |
| `projectId`               | string   | ID of the associated Firebase / Google Cloud project.                               |
| `tokenUri`                | string   | Standard URL for OAuth token handling at Google.                                    |
| `type`                    | string   | Type of the authentication object — always `service_account` here.                  |
| `universeDomain`          | string   | Google-specific namespace (default: `googleapis.com`).                              |
