> For the complete documentation index, see [llms.txt](https://docs.rememberizer.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rememberizer.ai/da/udviklerressourcer/api-docs/authentication.md).

# Godkendelse

Rememberizer tilbyder flere autentificerings-endepunkter til at administrere brugerkonti og sessioner. Dette dokument skitserer de tilgængelige autentificerings-API'er.

## Tilmelding

{% openapi src="<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>" path="/auth/signup/" method="post" %}
<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>
{% endopenapi %}

### Eksempelanmodninger

{% 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" %}
Erstat `recaptcha_response` med et faktisk reCAPTCHA-svar.
{% 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" %}
Erstat `recaptcha_response` med et faktisk reCAPTCHA-svar.
{% 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" %}
Erstat `recaptcha_response` med et faktisk reCAPTCHA-svar.
{% endhint %}
{% endtab %}
{% endtabs %}

## Log ind

{% openapi src="<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>" path="/auth/signin/" method="post" %}
<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>
{% endopenapi %}

### Eksempelanmodninger

{% 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" %}
Erstat `recaptcha_response` med et faktisk reCAPTCHA-svar.
{% 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'
    })
  });
  
  // Tjek for autentificeringscookies i svaret
  if (response.status === 204) {
    console.log("Login vellykket!");
  } else {
    console.error("Login mislykkedes!");
  }
};

signIn();
```

{% hint style="info" %}
Erstat `recaptcha_response` med et faktisk reCAPTCHA-svar.
{% 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 vellykket!")
    else:
        print("Login mislykkedes!")

sign_in()
```

{% hint style="info" %}
Erstat `recaptcha_response` med et faktisk reCAPTCHA-svar.
{% endhint %}
{% endtab %}
{% endtabs %}

## E-mail Verifikation

{% openapi src="<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>" path="/auth/verify-email/" method="post" %}
<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>
{% endopenapi %}

### Eksempelanmodninger

{% 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" %}
Erstat `YOUR_JWT_TOKEN` med din faktiske JWT-token og brug den verificeringskode, der er sendt til din e-mail.
{% 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-mailverificering lykkedes!");
  } else {
    console.error("E-mailverificering mislykkedes!");
  }
};

verifyEmail();
```

{% hint style="info" %}
Erstat `YOUR_JWT_TOKEN` med din faktiske JWT-token og brug den verificeringskode, der er sendt til din e-mail.
{% 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-mailverificering lykkedes!")
    else:
        print("E-mailverificering mislykkedes!")

verify_email()
```

{% hint style="info" %}
Erstat `YOUR_JWT_TOKEN` med din faktiske JWT-token og brug den verificeringskode, der er sendt til din e-mail.
{% endhint %}
{% endtab %}
{% endtabs %}

## Tokenhåndtering

{% openapi src="<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>" path="/auth/custom-refresh/" method="post" %}
<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>
{% endopenapi %}

### Eksempelanmodninger

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

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

{% hint style="info" %}
Denne endpoint bruger cookies til autentifikation. Refresh-tokenet skal sendes som en cookie.
{% 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' // Dette inkluderer cookies i anmodningen
  });
  
  if (response.status === 204) {
    console.log("Token opdateret med succes!");
  } else {
    console.error("Token opdatering mislykkedes!");
  }
};

refreshToken();
```

{% hint style="info" %}
Denne endpoint bruger cookies til autentifikation. Sørg for, at din applikation inkluderer legitimationsoplysninger i anmodningen.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests

def refresh_token():
    cookies = {
        "refresh_token": "DIN_REFRESH_TOKEN"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/custom-refresh/",
        cookies=cookies
    )
    
    if response.status_code == 204:
        print("Token opdateret med succes!")
    else:
        print("Token opdatering mislykkedes!")

refresh_token()
```

{% hint style="info" %}
Erstat `DIN_REFRESH_TOKEN` med dit faktiske refresh-token.
{% endhint %}
{% endtab %}
{% endtabs %}

## Log ud

{% openapi src="<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>" path="/auth/custom-logout/" method="post" %}
<https://github.com/skydeckai/rememberizer-docs/blob/production/da/.gitbook/assets/rememberizer_openapi.yml>
{% endopenapi %}

### Eksempelanmodninger

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

{% hint style="info" %}
Denne endpoint vil rydde autentificeringscookies.
{% endhint %}

```javascript
const logout = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/custom-logout/', {
    method: 'POST',
    credentials: 'include' // Dette inkluderer cookies i anmodningen
  });
  
  if (response.status === 204) {
    console.log("Logout vellykket!");
  } else {
    console.error("Logout mislykkedes!");
  }
};

logout();
```

{% hint style="info" %}
Denne endpoint bruger cookies til autentificering. Sørg for, at din applikation inkluderer legitimationsoplysninger i anmodningen.
{% 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("Logout vellykket!")
    else:
        print("Logout mislykkedes!")

logout()
```

{% hint style="info" %}
Denne endpoint vil rydde autentificeringscookies.
{% endhint %}

{% endtabs %


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.rememberizer.ai/da/udviklerressourcer/api-docs/authentication.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
