|
SSO через gnexus-auth-client-py: OAuth-поток на сервере, без ввода токенов в UI
- /auth/login: state+PKCE в Redis (переживает рестарты), redirect на authorize - /auth/callback: обмен кода, проверка system_role до выдачи токена, не-админу access-токен сразу revoke; токены в URL-фрагменте - /auth/refresh и /auth/revoke; SPA: кнопка входа, /oauth/callback, тихий refresh по 401, логаут - креды только из env (GAUTH_*), GAUTH_VERIFY_TLS для self-signed в LAN Co-Authored-By: Claude Code <noreply@anthropic.com> |
|---|
|
|
| .env.example |
|---|
| CLAUDE.md |
|---|
| README.md |
|---|
| app/api/auth_routes.py 0 → 100644 |
|---|
| app/auth/client.py 0 → 100644 |
|---|
| app/auth/deps.py |
|---|
| app/auth/stores.py 0 → 100644 |
|---|
| app/config.py |
|---|
| app/main.py |
|---|
| frontend/src/api.js |
|---|
| frontend/src/router.js |
|---|
| frontend/src/views/DashboardView.vue |
|---|
| frontend/src/views/LoginView.vue |
|---|
| frontend/src/views/OauthCallbackView.vue 0 → 100644 |
|---|
| frontend/vite.config.js |
|---|