# المصادقة

توفر Rememberizer عدة نقاط نهاية للمصادقة لإدارة حسابات المستخدمين والجلسات. توضح هذه الوثيقة واجهات برمجة التطبيقات المتاحة للمصادقة.

## التسجيل

{% openapi src="/files/HnPQpOiuTrIsiKLD8NFc" path="/auth/signup/" method="post" %}
[rememberizer\_openapi.yml](https://4065521171-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKV4TZLzR1jCpM5coRezn%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=5e84eb03-c48b-4980-9792-73172ea64dd4)
{% endopenapi %}

### طلبات مثال

{% 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": "جون دو",
    "captcha": "recaptcha_response"
  }'
```

{% hint style="info" %}
استبدل `recaptcha_response` باستجابة reCAPTCHA الفعلية.
{% 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: 'جون دو',
      captcha: 'recaptcha_response'
    })
  });
  
  const data = await response.json();
  console.log(data);
};

signUp();
```

{% hint style="info" %}
استبدل `recaptcha_response` باستجابة reCAPTCHA الفعلية.
{% 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": "جون دو",
        "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" %}
استبدل `recaptcha_response` باستجابة reCAPTCHA الفعلية.
{% endhint %}
{% endtab %}
{% endtabs %}

## تسجيل الدخول

{% openapi src="/files/HnPQpOiuTrIsiKLD8NFc" path="/auth/signin/" method="post" %}
[rememberizer\_openapi.yml](https://4065521171-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKV4TZLzR1jCpM5coRezn%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=5e84eb03-c48b-4980-9792-73172ea64dd4)
{% endopenapi %}

### طلبات مثال

{% 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" %}
استبدل `recaptcha_response` باستجابة reCAPTCHA الفعلية.
{% 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'
    })
  });
  
  // تحقق من ملفات تعريف الارتباط الخاصة بالمصادقة في الاستجابة
  if (response.status === 204) {
    console.log("تسجيل الدخول ناجح!");
  } else {
    console.error("فشل تسجيل الدخول!");
  }
};

signIn();
```

{% hint style="info" %}
استبدل `recaptcha_response` باستجابة reCAPTCHA الفعلية.
{% 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("تسجيل الدخول ناجح!")
    else:
        print("فشل تسجيل الدخول!")

sign_in()
```

{% hint style="info" %}
استبدل `recaptcha_response` باستجابة reCAPTCHA الفعلية.
{% endhint %}
{% endtab %}
{% endtabs %}

## التحقق من البريد الإلكتروني

{% openapi src="/files/HnPQpOiuTrIsiKLD8NFc" path="/auth/verify-email/" method="post" %}
[rememberizer\_openapi.yml](https://4065521171-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKV4TZLzR1jCpM5coRezn%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=5e84eb03-c48b-4980-9792-73172ea64dd4)
{% endopenapi %}

### طلبات مثال

{% 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" %}
استبدل `YOUR_JWT_TOKEN` برمز JWT الفعلي الخاص بك واستخدم رمز التحقق المرسل إلى بريدك الإلكتروني.
{% 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("تم التحقق من البريد الإلكتروني بنجاح!");
  } else {
    console.error("فشل التحقق من البريد الإلكتروني!");
  }
};

verifyEmail();
```

{% hint style="info" %}
استبدل `YOUR_JWT_TOKEN` برمز JWT الفعلي الخاص بك واستخدم رمز التحقق المرسل إلى بريدك الإلكتروني.
{% 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("تم التحقق من البريد الإلكتروني بنجاح!")
    else:
        print("فشل التحقق من البريد الإلكتروني!")

verify_email()
```

{% hint style="info" %}
استبدل `YOUR_JWT_TOKEN` برمز JWT الفعلي الخاص بك واستخدم رمز التحقق المرسل إلى بريدك الإلكتروني.
{% endhint %}
{% endtab %}
{% endtabs %}

## إدارة الرموز

{% openapi src="/files/HnPQpOiuTrIsiKLD8NFc" path="/auth/custom-refresh/" method="post" %}
[rememberizer\_openapi.yml](https://4065521171-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKV4TZLzR1jCpM5coRezn%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=5e84eb03-c48b-4980-9792-73172ea64dd4)
{% endopenapi %}

### طلبات مثال

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

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

{% hint style="info" %}
تستخدم هذه النقطة النهائية الكوكيز للمصادقة. يجب إرسال رمز التحديث ككوكي.
{% 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' // هذا يتضمن الكوكيز في الطلب
  });
  
  if (response.status === 204) {
    console.log("تم تحديث الرمز بنجاح!");
  } else {
    console.error("فشل تحديث الرمز!");
  }
};

refreshToken();
```

{% hint style="info" %}
تستخدم هذه النقطة النهائية الكوكيز للمصادقة. تأكد من أن تطبيقك يتضمن بيانات الاعتماد في الطلب.
{% endhint %}
{% endtab %}

{% tab title="Python" %}

```python
import requests

def refresh_token():
    cookies = {
        "refresh_token": "YOUR_REFRESH_TOKEN"
    }
    
    response = requests.post(
        "https://api.rememberizer.ai/api/v1/auth/custom-refresh/",
        cookies=cookies
    )
    
    if response.status_code == 204:
        print("تم تحديث الرمز بنجاح!")
    else:
        print("فشل تحديث الرمز!")

refresh_token()
```

{% hint style="info" %}
استبدل `YOUR_REFRESH_TOKEN` برمز التحديث الفعلي الخاص بك.
{% endhint %}
{% endtab %}
{% endtabs %}

## تسجيل الخروج

{% openapi src="/files/HnPQpOiuTrIsiKLD8NFc" path="/auth/custom-logout/" method="post" %}
[rememberizer\_openapi.yml](https://4065521171-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKV4TZLzR1jCpM5coRezn%2Fuploads%2Fgit-blob-77b6137eeb641262ec8e531c78123c02b825b865%2Frememberizer_openapi.yml?alt=media\&token=5e84eb03-c48b-4980-9792-73172ea64dd4)
{% endopenapi %}

### طلبات مثال

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

{% hint style="info" %}
ستقوم هذه النقطة النهائية بمسح ملفات تعريف الارتباط الخاصة بالمصادقة.
{% endhint %}

```javascript
const logout = async () => {
  const response = await fetch('https://api.rememberizer.ai/api/v1/auth/custom-logout/', {
    method: 'POST',
    credentials: 'include' // هذا يتضمن ملفات تعريف الارتباط في الطلب
  });
  
  if (response.status === 204) {
    console.log("تم تسجيل الخروج بنجاح!");
  } else {
    console.error("فشل تسجيل الخروج!");
  }
};

logout();
```

{% hint style="info" %}
تستخدم هذه النقطة النهائية ملفات تعريف الارتباط للمصادقة. تأكد من أن تطبيقك يتضمن بيانات الاعتماد في الطلب.
{% 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("تم تسجيل الخروج بنجاح!")
    else:
        print("فشل تسجيل الخروج!")

logout()
```

{% hint style="info" %}
ستقوم هذه النقطة النهائية بمسح ملفات تعريف الارتباط الخاصة بالمصادقة.
{% 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/ar/mward-almtwryn/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.
