feat(auth): voice-memo bot 365d access token (PoC v1)
bot 계정(`voice-memo-bot`) 한정 long-expiry access token 발급 경로 추가. 일반 사용자 흐름 영향 0 (env gate default false). - core/auth.py: create_voice_memo_bot_token() 신규 (env gate + username hard-match) - api/auth.py: login route 에 bot 분기 (bot 이면 long token 반환, 일반은 기존 흐름) - docker-compose.yml: 3 env (VOICE_MEMO_BOT_TOKEN_ENABLED/_USERNAME/_EXPIRE_DAYS) default false OpenClaw `/voice-memo` plugin → DS `/memos/` Bearer proxy 의 auth 기반. 정식 service-account/api_keys 테이블은 Phase 2 (multi-service 인입 추가 시점). plan: ~/.claude/plans/rosy-launching-otter.md project: ~/.claude/projects/-Users-hyungiahn/memory/project_voice_memo_pipeline.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,7 @@ from core.auth import (
|
||||
REFRESH_TOKEN_EXPIRE_DAYS,
|
||||
create_access_token,
|
||||
create_refresh_token,
|
||||
create_voice_memo_bot_token,
|
||||
decode_token,
|
||||
get_current_user,
|
||||
hash_password,
|
||||
@@ -117,6 +118,11 @@ async def login(
|
||||
user.last_login_at = datetime.now(timezone.utc)
|
||||
await session.commit()
|
||||
|
||||
# Voice Memo PoC v1 — bot 계정 한정 long-expiry token (env gate). 일반 사용자 흐름 영향 0.
|
||||
bot_token = create_voice_memo_bot_token(user.username)
|
||||
if bot_token is not None:
|
||||
return AccessTokenResponse(access_token=bot_token)
|
||||
|
||||
# refresh token → HttpOnly cookie
|
||||
_set_refresh_cookie(response, create_refresh_token(user.username))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user