# Authentifizierung

Rememberizer bietet mehrere Authentifizierungsendpunkte zur Verwaltung von Benutzerkonten und Sitzungen. Dieses Dokument beschreibt die verfügbaren Authentifizierungs-APIs.

## Anmeldung

{% openapi src="/files/ruiFvGmmJmrVu2Iycaim" path="/auth/signup/" method="post" %}
[rememberizer\_openapi.yml](https://2490272757-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx5M0COIHmFFlpJ9e5pvp%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=22d7ca07-e3b4-475f-840e-857109bf09bc)
{% endopenapi %}

### Beispielanfragen

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/signup/ \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "secure_password",
    "name": "John Doe",
    "captcha": "recaptcha_response"
  }'
```

{% hint style="info" %}
Ersetzen Sie `recaptcha_response` durch eine tatsächliche reCAPTCHA-Antwort.
{% endhint %}
{% endtab %}

{% tab title="JavaScript" %}

```javascript
const signUp = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/signup/', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      email: 'user@example.com',
      password: 'secure_password',
      name: 'John Doe',
      captcha: 'recaptcha_response'
    })
  });
  
  const data = await response.json();
  console.log(data);
};

signUp();
```

{% hint style="info" %}
Ersetzen Sie `recaptcha_response` durch eine tatsächliche reCAPTCHA-Antwort.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

def sign_up():
    headers = {
        "Content-Type": "application/json"
    }
    
    payload = {
        "email": "user@example.com",
        "password": "secure_password",
        "name": "John Doe",
        "captcha": "recaptcha_response"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/signup/",
        headers=headers,
        data=json.dumps(payload)
    )
    
    data = response.json()
    print(data)

sign_up()
```

{% hint style="info" %}
Ersetzen Sie `recaptcha_response` durch eine tatsächliche reCAPTCHA-Antwort.
{% endhint %}
{% endtab %}
{% endtabs %}

## Anmelden

{% openapi src="/files/ruiFvGmmJmrVu2Iycaim" path="/auth/signin/" method="post" %}
[rememberizer\_openapi.yml](https://2490272757-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx5M0COIHmFFlpJ9e5pvp%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=22d7ca07-e3b4-475f-840e-857109bf09bc)
{% endopenapi %}

### Beispielanfragen

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/signin/ \
  -H "Content-Type: application/json" \
  -d '{
    "login": "user@example.com",
    "password": "secure_password",
    "captcha": "recaptcha_response"
  }'
```

{% hint style="info" %}
Ersetzen Sie `recaptcha_response` durch eine tatsächliche reCAPTCHA-Antwort.
{% endhint %}
{% endtab %}

{% tab title="JavaScript" %}

```javascript
const signIn = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/signin/', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      login: 'user@example.com',
      password: 'secure_password',
      captcha: 'recaptcha_response'
    })
  });
  
  // Überprüfen Sie die Auth-Cookies in der Antwort
  if (response.status === 204) {
    console.log("Login erfolgreich!");
  } else {
    console.error("Login fehlgeschlagen!");
  }
};

signIn();
```

{% hint style="info" %}
Ersetzen Sie `recaptcha_response` durch eine tatsächliche reCAPTCHA-Antwort.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

def sign_in():
    headers = {
        "Content-Type": "application/json"
    }
    
    payload = {
        "login": "user@example.com",
        "password": "secure_password",
        "captcha": "recaptcha_response"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/signin/",
        headers=headers,
        data=json.dumps(payload)
    )
    
    if response.status_code == 204:
        print("Login erfolgreich!")
    else:
        print("Login fehlgeschlagen!")

sign_in()
```

{% hint style="info" %}
Ersetzen Sie `recaptcha_response` durch eine tatsächliche reCAPTCHA-Antwort.
{% endhint %}
{% endtab %}
{% endtabs %}

## E-Mail-Verifizierung

{% openapi src="/files/ruiFvGmmJmrVu2Iycaim" path="/auth/verify-email/" method="post" %}
[rememberizer\_openapi.yml](https://2490272757-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx5M0COIHmFFlpJ9e5pvp%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=22d7ca07-e3b4-475f-840e-857109bf09bc)
{% endopenapi %}

### Beispielanfragen

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/verify-email/ \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "verification_code": "123456"
  }'
```

{% hint style="info" %}
Ersetzen Sie `YOUR_JWT_TOKEN` durch Ihr tatsächliches JWT-Token und verwenden Sie den an Ihre E-Mail gesendeten Verifizierungscode.
{% endhint %}
{% endtab %}

{% tab title="JavaScript" %}

```javascript
const verifyEmail = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/verify-email/', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_JWT_TOKEN',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      verification_code: '123456'
    })
  });
  
  if (response.status === 200) {
    console.log("E-Mail-Verifizierung erfolgreich!");
  } else {
    console.error("E-Mail-Verifizierung fehlgeschlagen!");
  }
};

verifyEmail();
```

{% hint style="info" %}
Ersetzen Sie `YOUR_JWT_TOKEN` durch Ihr tatsächliches JWT-Token und verwenden Sie den an Ihre E-Mail gesendeten Verifizierungscode.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

def verify_email():
    headers = {
        "Authorization": "Bearer YOUR_JWT_TOKEN",
        "Content-Type": "application/json"
    }
    
    payload = {
        "verification_code": "123456"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/verify-email/",
        headers=headers,
        data=json.dumps(payload)
    )
    
    if response.status_code == 200:
        print("E-Mail-Verifizierung erfolgreich!")
    else:
        print("E-Mail-Verifizierung fehlgeschlagen!")

verify_email()
```

{% hint style="info" %}
Ersetzen Sie `YOUR_JWT_TOKEN` durch Ihr tatsächliches JWT-Token und verwenden Sie den an Ihre E-Mail gesendeten Verifizierungscode.
{% endhint %}
{% endtab %}
{% endtabs %}

## Tokenverwaltung

{% openapi src="/files/ruiFvGmmJmrVu2Iycaim" path="/auth/custom-refresh/" method="post" %}
[rememberizer\_openapi.yml](https://2490272757-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx5M0COIHmFFlpJ9e5pvp%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=22d7ca07-e3b4-475f-840e-857109bf09bc)
{% endopenapi %}

### Beispielanfragen

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/custom-refresh/ \
  -b "refresh_token=DEIN_REFRESH_TOKEN"
```

{% hint style="info" %}
Dieser Endpunkt verwendet Cookies zur Authentifizierung. Das Refresh-Token sollte als Cookie gesendet werden.
{% endhint %}
{% endtab %}

{% tab title="JavaScript" %}

```javascript
const refreshToken = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/custom-refresh/', {
    method: 'POST',
    credentials: 'include' // Dies schließt Cookies in die Anfrage ein
  });
  
  if (response.status === 204) {
    console.log("Token erfolgreich aktualisiert!");
  } else {
    console.error("Token-Aktualisierung fehlgeschlagen!");
  }
};

refreshToken();
```

{% hint style="info" %}
Dieser Endpunkt verwendet Cookies zur Authentifizierung. Stellen Sie sicher, dass Ihre Anwendung Anmeldeinformationen in der Anfrage einfügt.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests

def refresh_token():
    cookies = {
        "refresh_token": "DEIN_REFRESH_TOKEN"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/custom-refresh/",
        cookies=cookies
    )
    
    if response.status_code == 204:
        print("Token erfolgreich aktualisiert!")
    else:
        print("Token-Aktualisierung fehlgeschlagen!")

refresh_token()
```

{% hint style="info" %}
Ersetzen Sie `DEIN_REFRESH_TOKEN` durch Ihr tatsächliches Refresh-Token.
{% endhint %}
{% endtab %}
{% endtabs %}

## Abmelden

{% openapi src="/files/ruiFvGmmJmrVu2Iycaim" path="/auth/custom-logout/" method="post" %}
[rememberizer\_openapi.yml](https://2490272757-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx5M0COIHmFFlpJ9e5pvp%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=22d7ca07-e3b4-475f-840e-857109bf09bc)
{% endopenapi %}

### Beispielanfragen

```bash
curl -X POST \
  https://api.rememberizer.ai/api/v1/auth/custom-logout/
```

{% hint style="info" %}
Dieser Endpunkt löscht die Authentifizierungs-Cookies.
{% endhint %}

```javascript
const logout = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/custom-logout/', {
    method: 'POST',
    credentials: 'include' // Dies schließt Cookies in die Anfrage ein
  });
  
  if (response.status === 204) {
    console.log("Abmeldung erfolgreich!");
  } else {
    console.error("Abmeldung fehlgeschlagen!");
  }
};

logout();
```

{% hint style="info" %}
Dieser Endpunkt verwendet Cookies zur Authentifizierung. Stellen Sie sicher, dass Ihre Anwendung Anmeldeinformationen in die Anfrage einfügt.
{% endhint %}

```python
import requests

def logout():
    session = requests.Session()
    
    response = session.post(
        "https://api.rememberizer.ai/api/v1/auth/custom-logout/"
    )
    
    if response.status_code == 204:
        print("Abmeldung erfolgreich!")
    else:
        print("Abmeldung fehlgeschlagen!")

logout()
```

{% hint style="info" %}
Dieser Endpunkt löscht die Authentifizierungs-Cookies.
{% endhint %}

{% endtabs %


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rememberizer.ai/de/entwicklerressourcen/api-docs/authentication.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
