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

# साइन इन करें

> रिमाइंडर और व्यक्तिगतकृत सुविधाएँ सक्षम करने के लिए CLI से FailproofAI में साइन इन करें

```bash theme={null}
failproofai auth login    # email + one-time code
failproofai auth logout   # revoke this session
failproofai auth whoami   # print the signed-in identity
```

पुरानी `--login` / `--logout` / `--whoami` फ्लैग फॉर्म अभी भी पिछड़े संगतता के लिए एक उपनाम के रूप में स्वीकार की जाती है।

प्रमाणीकरण वैकल्पिक है। नीतियां, डैशबोर्ड, `/audit` पृष्ठ, और हर अन्य स्थानीय सुविधा ठीक उसी तरह काम करती है चाहे आप साइन इन हों या नहीं। लॉगिन सतह इसलिए मौजूद है ताकि जिन सुविधाओं को **एक स्थिर पहचान की आवश्यकता है** (आज पुनः-ऑडिट रिमाइंडर, भविष्य में और अधिक) के पास लंगर डालने के लिए कहीं हो।

## साइन-इन प्रवाह

```bash theme={null}
failproofai auth login
```

आपके ईमेल के लिए संकेत देता है, उस पते पर एक 6-अंकीय एक-बार कोड भेजता है, कोड के लिए संकेत देता है, और सफलता पर `~/.failproofai/auth.json` (मोड `0600`) लिखता है। वही सत्र तब इन-ऐप डैशबोर्ड में दिखाई देता है — `/audit` पर `[ set a reminder ]` पर क्लिक करने से आप साइन इन के रूप में दिखाई देंगे।

डैशबोर्ड उन उपयोगकर्ताओं के लिए `/audit` पर एक मोडल डायलॉग के रूप में समान प्रवाह को उजागर करता है जो कभी CLI को स्पर्श नहीं करते हैं।

## साइन-आउट

```bash theme={null}
failproofai auth logout
```

सर्वर पर वर्तमान सत्र को रद्द करता है और `~/.failproofai/auth.json` को हटाता है। यदि api-server अप्राप्य है, तो स्थानीय फ़ाइल को वैसे भी हटा दिया जाता है — लॉग आउट करने का स्थानीय इरादा हमेशा जीतता है।

## पहचान की जांच

```bash theme={null}
failproofai auth whoami
```

जब एक वैध सत्र मौजूद हो तो `<email> (<user uuid>)` प्रिंट करता है और 0 पर बाहर निकलता है, अन्यथा `not signed in` प्रिंट करता है और 1 पर बाहर निकलता है। यदि एक्सेस टोकन समाप्त होने के एक मिनट के भीतर है तो पृष्ठभूमि में चुपचाप एक्सेस टोकन को रीफ्रेश करता है।

## निरंतर पुनः-ऑडिट रिमाइंडर

जब आप `/audit` पृष्ठ पर **`[ set a reminder ]`** पर क्लिक करते हैं (या मोडल के माध्यम से साइन इन करते हैं जो बटन गेट्स को करता है), डैशबोर्ड `~/.failproofai/next-audit.json` पर एक छोटी साथी फ़ाइल लिखता है:

```json theme={null}
{
  "next_audit_at": 1780765200,
  "user_email": "you@example.com",
  "set_at": 1780160574
}
```

यह फ़ाइल उस ईमेल के लिए स्कोप की गई है जिसके लिए इसे सेट किया गया था — CLI सत्र को एक अलग खाते में स्विच करने से पिछले उपयोगकर्ता से संबंधित किसी भी रिमाइंडर को छिपाया जाता है। डिफ़ॉल्ट ऑफसेट **7 दिन** है, जब शेड्यूलर उतरता है तो बाद में कॉन्फ़िगर करने योग्य। `auth.json` की तरह `0600` परमिशन के साथ बनाया गया है।

डैशबोर्ड का `/api/auth/reminder` एंडपॉइंट `GET` (पढ़ना), `POST` (सेट / पुनः शेड्यूल), और `DELETE` (स्पष्ट) को उजागर करता है और एक सक्रिय सत्र की आवश्यकता है।

## `~/.failproofai/auth.json` में क्या है

```json theme={null}
{
  "access_token": "eyJhbGc…",
  "refresh_token": "9ede3e…",
  "access_expires_at": 1780160574,
  "refresh_expires_at": 1782748974,
  "user": { "id": "<uuid>", "email": "you@example.com" }
}
```

`0600` परमिशन के साथ बनाया गया है (केवल मालिक पढ़ने/लिखने में सक्षम)। एक्सेस टोकन एक 1-घंटे का HS256 JWT है; रीफ्रेश टोकन एक अपारदर्शी 256-बिट यादृच्छिक स्ट्रिंग है जो सर्वर `SHA-256(token)` के रूप में स्टोर करता है। रीफ्रेश-टोकन रिप्ले सर्वर-साइड पर पता लगाया जाता है और उपयोगकर्ता के लिए हर सत्र को रद्द करता है।

## पर्यावरण चर

| चर                     | डिफ़ॉल्ट                     | उद्देश्य                                                                                                 |
| ---------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------- |
| `FAILPROOF_API_URL`    | `https://api.befailproof.ai` | api-server आधार URL को ओवरराइड करें। स्व-होस्ट किए गए api-server के विरुद्ध स्थानीय विकास के लिए उपयोगी। |
| `FAILPROOFAI_AUTH_DIR` | `~/.failproofai`             | ओवरराइड करें कि `auth.json` कहाँ स्टोर किया गया है। ज्यादातर परीक्षणों के लिए।                           |

पूरी सूची के लिए [पर्यावरण चर](/hi/cli/environment-variables) देखें।

## समस्या निवारण

**"Could not reach the api-server"** — CLI `FAILPROOF_API_URL` के लिए TCP कनेक्शन नहीं खोल सकता है। अपने नेटवर्क की जांच करें, या यदि आप एक स्व-होस्ट किए गए api-server चला रहे हैं तो `FAILPROOF_API_URL` सेट करें।

**"Rate limited"** — उस ईमेल के लिए 15-मिनट की विंडो में बहुत अधिक लॉगिन प्रयास (5/ईमेल) या IP (20/IP), या उसी ईमेल के लिए पिछले अनुरोध के बाद 30-सेकंड की पुनः भेजने की शीतलता। त्रुटि संदेश सेकंड में पुनः प्रयास-बाद की विंडो शामिल करता है।

**Code rejected** — OTP गलत था, समाप्त हो गया था, या पंक्ति को इसके 5-गलत-अनुमान लॉकआउट को मारा गया था। ताजा कोड का अनुरोध करने के लिए `failproofai auth login` चलाएँ।
