인증
JWT 로그인, 회원가입, 세션 관리, API 키
개요
이메일과 비밀번호로 로그인하여 JWT 토큰을 받으세요. 모든 보호된 엔드포인트의 Authorization 헤더에 Bearer 자격증명으로 토큰을 전달하세요. 토큰은 기본적으로 7일 후 만료됩니다.
기본 URL:
Authorization: Bearer <token>인증
POST /auths/signup
새 사용자 계정을 등록합니다. ENABLE_SIGNUP 이 false이면 비활성화됩니다. 비밀번호는 ≤ 72바이트여야 합니다 (bcrypt 제한).
새 사용자 계정을 등록합니다.
요청 본문
{
"name": "Jane Smith",
"email": "jane@example.com",
"password": "secret"
}응답 200
{
"token": "eyJhbGci...",
"token_type": "Bearer",
"expires_at": 1700000000,
"id": "user-uuid",
"name": "Jane Smith",
"email": "jane@example.com",
"role": "user",
"profile_image_url": "/user.png",
"permissions": {}
}오류
| 상태 코드 | 설명 |
|---|---|
400 | 이메일이 이미 사용 중이거나 형식이 유효하지 않음 |
403 | 회원가입이 비활성화됨 |
POST /auths/signin
이메일과 비밀번호로 로그인합니다. 기본적으로 7일 동안 유효한 JWT 토큰을 반환합니다.
이메일과 비밀번호로 로그인합니다.
요청 본문
{
"email": "jane@example.com",
"password": "secret"
}응답 200
{
"token": "eyJhbGci...",
"token_type": "Bearer",
"expires_at": 1700000000,
"id": "user-uuid",
"name": "Jane Smith",
"email": "jane@example.com",
"role": "user"
}오류
| 상태 코드 | 설명 |
|---|---|
400 | 이메일 또는 비밀번호가 유효하지 않음 |
GET /auths/
현재 세션 사용자의 전체 프로필과 유효 권한을 반환합니다.
현재 사용자를 가져오고 세션을 갱신합니다.
응답 200
{
"token": "eyJhbGci...",
"token_type": "Bearer",
"expires_at": 1700000000,
"id": "user-uuid",
"email": "user@example.com",
"name": "Jane Smith",
"role": "user",
"permissions": {
"workspace": { "models": false, "knowledge": false },
"chat": { "file_upload": true, "share": true, "delete": true },
"features": { "web_search": true, "image_generation": true }
}
}오류
| 상태 코드 | 설명 |
|---|---|
401 | 토큰이 만료되었거나 유효하지 않음 |
GET /auths/signout
세션 쿠키를 지웁니다. OAuth를 사용하는 경우 리다이렉트 URL을 반환합니다.
로그아웃하고 세션을 지웁니다.
응답 200
{ "status": true }POST /auths/add
관리자 전용. 명시적으로 역할을 지정하여 새 사용자를 생성합니다.
새 사용자를 생성합니다 (관리자 전용).
요청 본문
{
"name": "John Doe",
"email": "john@example.com",
"password": "secret",
"role": "user",
"profile_image_url": ""
}역할은 pending, user, admin 중 하나여야 합니다.
응답 200
{
"token": "eyJhbGci...",
"id": "user-uuid",
"email": "john@example.com",
"name": "John Doe",
"role": "user"
}오류
| 상태 코드 | 설명 |
|---|---|
400 | 이메일이 이미 사용 중 |
API 키
JWT 토큰의 장기 대안입니다. 만료되지 않으며 세션 로그아웃 후에도 유효합니다. 사용자당 활성 키는 하나 — 새 키를 생성하면 이전 키가 교체됩니다.
POST /auths/api_key
현재 사용자의 API 키를 생성하거나 교체합니다.
새 API 키를 생성합니다.
응답 200
{ "api_key": "sk-..." }오류
| 상태 코드 | 설명 |
|---|---|
403 | ENABLE_API_KEY가 비활성화됨 |
GET /auths/api_key
현재 사용자의 활성 API 키를 가져옵니다.
현재 API 키를 가져옵니다.
응답 200
{ "api_key": "sk-..." }오류
| 상태 코드 | 설명 |
|---|---|
404 | 아직 API 키가 생성되지 않음 |
DELETE /auths/api_key
현재 사용자의 API 키를 삭제합니다. 키는 즉시 무효화됩니다.
API 키를 삭제합니다.
응답 200
true계정 관리
POST /auths/update/profile
현재 사용자의 이름, 프로필 이미지, 커스텀 정보를 업데이트합니다.
사용자 프로필을 업데이트합니다.
요청 본문
{
"name": "Updated Name",
"profile_image_url": "https://...",
"info": { "logo_url": "s3://bucket/path" }
}응답 200
업데이트된 사용자 객체.
POST /auths/update/password
현재 사용자의 비밀번호를 변경합니다.
비밀번호를 변경합니다.
요청 본문
{
"password": "current-password",
"new_password": "new-password"
}응답 200
true오류
| 상태 코드 | 설명 |
|---|---|
400 | 현재 비밀번호가 올바르지 않음 |
관리자 설정
GET /auths/admin/config
시스템 전체 인증 및 기능 설정을 반환합니다.
인증 설정을 가져옵니다.
응답 200
{
"ENABLE_SIGNUP": true,
"ENABLE_API_KEY": true,
"DEFAULT_USER_ROLE": "user",
"JWT_EXPIRES_IN": "7d",
"ENABLE_MESSAGE_RATING": true,
"ENABLE_CHANNELS": false,
"ENABLE_NOTES": true
}POST /auths/admin/config
시스템 전체 인증 설정을 업데이트합니다.
인증 설정을 업데이트합니다.
응답 200
업데이트된 설정 객체.