Auth Personalization Skill
Instructions
- •
Auth plumbing
- •Install Better Auth client/server SDKs
- •Configure redirect URIs and cookie/CSRF settings
- •In FastAPI, add auth dependency to protect endpoints
- •Verify tokens server-side
- •
Data model
- •Neon tables:
- •
users(id, email, name, role) - •
preferences(user_id, difficulty, focus_tags, lang)
- •
- •Reuse
sessionstable if present from RAG service
- •Neon tables:
- •
UX
- •Docusaurus: add login/logout buttons
- •Display session state in header
- •Guard personalization features behind login
- •Provide preferences UI (dropdowns/tags) saved via backend
- •
Personalization logic
- •Pass user prefs into RAG prompt context:
- •
difficulty→ adjust answer tone - •
focus_tags→ rerank payload
- •
- •Store last chapters read for resume suggestions
- •Pass user prefs into RAG prompt context:
Examples
typescript
// Better Auth client setup
import { createAuthClient } from "better-auth/client";
export const authClient = createAuthClient({
baseURL: process.env.NEXT_PUBLIC_API_URL,
});
python
# FastAPI auth dependency
from fastapi import Depends, HTTPException
async def get_current_user(token: str = Depends(oauth2_scheme)):
# Verify Better Auth token
# Return user or raise 401
pass
Definition of Done
- •Users can sign up/sign in via Better Auth; session recognized by backend
- •Preferences persisted in Neon; API to update/fetch works
- •RAG responses reflect preferences (tone/focus) when provided
- •Basic UI for login + prefs exists in Docusaurus