autoreg-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
54
skills/lobehub-pool/references/better-auth-api.md
Normal file
54
skills/lobehub-pool/references/better-auth-api.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Better Auth API — LobeHub Self-Hosted
|
||||
|
||||
## Endpoints
|
||||
|
||||
```
|
||||
POST /api/auth/sign-up/email — регистрация
|
||||
POST /api/auth/sign-in/email — логин
|
||||
GET /api/auth/session — сессия (требует cookie)
|
||||
```
|
||||
|
||||
## Sign-Up
|
||||
|
||||
```python
|
||||
import httpx
|
||||
|
||||
r = httpx.post("http://[REDACTED-IP]:3210/api/auth/sign-up/email",
|
||||
json={"email": "[REDACTED-EMAIL]", "password": "Str0ng!Pass", "name": "username"},
|
||||
headers={
|
||||
"Origin": "http://[REDACTED-IP]:3210",
|
||||
"Referer": "http://[REDACTED-IP]:3210/signin?referral=fQXk8Gr5",
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
timeout=15
|
||||
)
|
||||
# 200 → {"token": "...", "user": {"id": "user_xxx", "email": "...", ...}}
|
||||
# 400 → {"message": "Missing or null Origin", "code": "MISSING_OR_NULL_ORIGIN"}
|
||||
# 429 → {"message": "Too many requests..."}
|
||||
```
|
||||
|
||||
## Sign-In (валидация)
|
||||
|
||||
```python
|
||||
r = httpx.post("http://[REDACTED-IP]:3210/api/auth/sign-in/email",
|
||||
json={"email": "[REDACTED-EMAIL]", "password": "Str0ng!Pass"},
|
||||
headers={"Origin": "http://[REDACTED-IP]:3210", "Referer": "http://[REDACTED-IP]:3210/signin"},
|
||||
timeout=10
|
||||
)
|
||||
# 200 → {"token": "...", "user": {...}}
|
||||
# 401 → invalid credentials
|
||||
```
|
||||
|
||||
## Rate Limit
|
||||
|
||||
- 3-4 регистрации за burst → 429 "Too many requests"
|
||||
- Пауза 15-30 секунд
|
||||
- ~40 аккаунтов за 5 минут при sequential режиме
|
||||
- Rate limit per-IP, не per-email
|
||||
|
||||
## Pitfalls
|
||||
|
||||
1. **Origin/Referer headers обязательны** — без них 400 MISSING_OR_NULL_ORIGIN
|
||||
2. **Referer с referral параметром** — передаёт реферальный код при регистрации
|
||||
3. **Email не верифицируется** — можно использовать любые email адреса
|
||||
4. **Token в ответе НЕ Bearer** — это session token, передаётся в cookie, не в Authorization header
|
||||
Reference in New Issue
Block a user